summaryrefslogtreecommitdiff
path: root/deprecated/old-lib/resource/doc/synopsis-example.txt
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2009-12-09 09:47:16 +0000
committeraarne <aarne@chalmers.se>2009-12-09 09:47:16 +0000
commitc8ceed08efcc0bdc1fcbd89bce643d9f52f0991b (patch)
tree5f0b314341c129eba1bc67b8b887fb8a4486fad8 /deprecated/old-lib/resource/doc/synopsis-example.txt
parent101df06f6c8380328d4266adadac3ab6d1bac0b3 (diff)
moving a few things to deprecated
Diffstat (limited to 'deprecated/old-lib/resource/doc/synopsis-example.txt')
-rw-r--r--deprecated/old-lib/resource/doc/synopsis-example.txt51
1 files changed, 51 insertions, 0 deletions
diff --git a/deprecated/old-lib/resource/doc/synopsis-example.txt b/deprecated/old-lib/resource/doc/synopsis-example.txt
new file mode 100644
index 000000000..8c992339e
--- /dev/null
+++ b/deprecated/old-lib/resource/doc/synopsis-example.txt
@@ -0,0 +1,51 @@
+
+The standard way of building an application has the following modules.
+
+An abstract syntax:
+```
+ abstract Music = {
+ cat
+ Kind,
+ Property ;
+ fun
+ PropKind : Kind -> Property -> Kind ;
+ Song : Kind ;
+ American : Property ;
+ }
+```
+A domain lexicon interface:
+```
+ interface LexMusic = open Cat in {
+ oper
+ song_N : N ;
+ american_A : A ;
+ }
+```
+A functor on ``Syntax`` and the domain lexicon interface:
+```
+ 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 ;
+ }
+```
+For each language, an instance of the domain lexicon:
+```
+ instance LexMusicGer of LexMusic = CatGer ** open ParadigmsGer in {
+ oper
+ song_N = mkN "Lied" "Lieder" neuter ;
+ american_A = mkA "amerikanisch" ;
+ }
+```
+For each language, an instantiation of the functor:
+```
+ --# -path=.:present:prelude
+
+ concrete MusicGer of Music = MusicI with
+ (Syntax = SyntaxGer),
+ (LexMusic = LexMusicGer) ;
+```