Browse code

update

Christian Fraß authored on 02/07/2017 19:38:23
Showing 11 changed files
1 1
deleted file mode 100644
... ...
@@ -1,4 +0,0 @@
1
-#!/bin/bash
2
-
3
-js tools/koralle.js > makefile && make $@ ; rm makefile
4
-
5 0
new file mode 100644
... ...
@@ -0,0 +1,77 @@
1
+# Project "fs-draft"
2
+# This makefile was generated by Koralle 0.2.0
3
+
4
+~root:  ~root_~logging ~dependencies ~core
5
+.PHONY: ~root
6
+
7
+~root_~logging: 
8
+	@ echo "[log] <fs-draft> ~root"
9
+.PHONY: ~root_~logging
10
+
11
+~dependencies:  ~dependencies_~logging
12
+.PHONY: ~dependencies
13
+
14
+~dependencies_~logging: 
15
+	@ echo "[log] <fs-draft> 	~dependencies"
16
+.PHONY: ~dependencies_~logging
17
+
18
+~core:  ~core_~logging build
19
+.PHONY: ~core
20
+
21
+~core_~logging: 
22
+	@ echo "[log] <fs-draft> 	~core"
23
+.PHONY: ~core_~logging
24
+
25
+build:  build_~logging structure logic style media
26
+.PHONY: build
27
+
28
+build_~logging: 
29
+	@ echo "[log] <fs-draft> 		build"
30
+.PHONY: build_~logging
31
+
32
+structure:  structure_~logging
33
+	@ mkdir --parents build/
34
+	@ php source/content/draft.html.php > build/draft.html
35
+.PHONY: structure
36
+
37
+structure_~logging: 
38
+	@ echo "[log] <fs-draft> 			structure"
39
+.PHONY: structure_~logging
40
+
41
+logic:  logic_~logging build/draft.js
42
+.PHONY: logic
43
+
44
+logic_~logging: 
45
+	@ echo "[log] <fs-draft> 			logic"
46
+.PHONY: logic_~logging
47
+
48
+build/draft.js:  source/logic/client/tools.js source/logic/client/table.js source/logic/client/toc.js source/logic/client/main.js
49
+	@ mkdir --parents build/
50
+	@ cat source/logic/client/tools.js source/logic/client/table.js source/logic/client/toc.js source/logic/client/main.js > build/draft.js
51
+
52
+style:  style_~logging
53
+	@ mkdir --parents build/
54
+	@ cat source/style/functions.less source/style/theme.less source/style/common.less source/style/concrete.less > /tmp/_.less
55
+	@ lessc /tmp/_.less > build/draft.css
56
+.PHONY: style
57
+
58
+style_~logging: 
59
+	@ echo "[log] <fs-draft> 			style"
60
+.PHONY: style_~logging
61
+
62
+media:  media_~logging logo
63
+.PHONY: media
64
+
65
+media_~logging: 
66
+	@ echo "[log] <fs-draft> 			media"
67
+.PHONY: media_~logging
68
+
69
+logo:  logo_~logging
70
+	@ mkdir --parents build/
71
+	@ cp source/media/logo.svg build/logo.svg
72
+.PHONY: logo
73
+
74
+logo_~logging: 
75
+	@ echo "[log] <fs-draft> 				logo"
76
+.PHONY: logo_~logging
77
+
0 78
similarity index 100%
1 79
rename from readme.txt
2 80
rename to readme.md
... ...
@@ -29,7 +29,7 @@
29 29
 			$data = sql_cross($data, $data_adpositions["references"]);
30 30
 			$data = sql_select($data, function ($row) {return ($row["reference_id"] == $row["id"]);});
31 31
 			$data = sql_delete($data, ["reference_id", "id"]);
32
-			$data = sql_rename($data, "name", "kind_name");
32
+			$data = sql_rename($data, "name", "reference_name");
33 33
 		}
34 34
 	}
35 35
 	
... ...
@@ -39,7 +39,7 @@
39 39
 			new class_column("Language", "language_id"),
40 40
 			new class_column("Situation", "situation_name"),
41 41
 			new class_column("Type", "type_name"),
42
-			new class_column("Kind", "kind_name"),
42
+			new class_column("Reference", "reference_name"),
43 43
 			new class_column("Words", "words", function ($x) {return json_encode($x);}),
44 44
 		],
45 45
 		$data
... ...
@@ -12,8 +12,8 @@
12 12
 		{"id": "x09", "name": "between"}
13 13
 	],
14 14
 	"types": [
15
-		{"id": "pos", "name": "Positive"},
16
-		{"id": "dir", "name": "Directive"}
15
+		{"id": "dir", "name": "Directive"},
16
+		{"id": "pos", "name": "Positive"}
17 17
 	],
18 18
 	"references": [
19 19
 		{"id": "abs", "name": "Absolute"},
... ...
@@ -21,56 +21,56 @@
21 21
 		{"id": "att", "name": "Attributive"}
22 22
 	],
23 23
 	"words": [
24
-		{"language_id": "fs", "situation_id": "x00", "type_id": "pos", "reference_id": "abs", "words": ["for"]},
25
-		{"language_id": "fs", "situation_id": "x00", "type_id": "pos", "reference_id": "rel", "words": ["for (lut)"]},
26
-		{"language_id": "fs", "situation_id": "x00", "type_id": "pos", "reference_id": "att", "words": ["for arend"]},
27
-		{"language_id": "fs", "situation_id": "x00", "type_id": "dir", "reference_id": "abs", "words": ["to for"]},
28
-		{"language_id": "fs", "situation_id": "x00", "type_id": "dir", "reference_id": "rel", "words": ["to for (lut)"]},
29
-		{"language_id": "fs", "situation_id": "x01", "type_id": "pos", "reference_id": "abs", "words": ["bak"]},
30
-		{"language_id": "fs", "situation_id": "x01", "type_id": "pos", "reference_id": "rel", "words": ["bak (lut)"]},
31
-		{"language_id": "fs", "situation_id": "x01", "type_id": "pos", "reference_id": "att", "words": ["bak arend"]},
32
-		{"language_id": "fs", "situation_id": "x01", "type_id": "dir", "reference_id": "abs", "words": ["to bak"]},
33
-		{"language_id": "fs", "situation_id": "x01", "type_id": "dir", "reference_id": "rel", "words": ["to bak (lut)"]},
34
-		{"language_id": "fs", "situation_id": "x02", "type_id": "pos", "reference_id": "abs", "words": ["uver"]},
35
-		{"language_id": "fs", "situation_id": "x02", "type_id": "pos", "reference_id": "rel", "words": ["uver (lut)"]},
36
-		{"language_id": "fs", "situation_id": "x02", "type_id": "pos", "reference_id": "att", "words": ["uver arend"]},
37
-		{"language_id": "fs", "situation_id": "x02", "type_id": "dir", "reference_id": "abs", "words": ["to uver"]},
38
-		{"language_id": "fs", "situation_id": "x02", "type_id": "dir", "reference_id": "rel", "words": ["to uver (lut)"]},
39
-		{"language_id": "fs", "situation_id": "x03", "type_id": "pos", "reference_id": "abs", "words": ["neder"]},
40
-		{"language_id": "fs", "situation_id": "x03", "type_id": "pos", "reference_id": "rel", "words": ["neder (lut)"]},
41
-		{"language_id": "fs", "situation_id": "x03", "type_id": "pos", "reference_id": "att", "words": ["neder arend"]},
42
-		{"language_id": "fs", "situation_id": "x03", "type_id": "dir", "reference_id": "abs", "words": ["to neder"]},
43
-		{"language_id": "fs", "situation_id": "x03", "type_id": "dir", "reference_id": "rel", "words": ["to neder (lut)"]},
44
-		{"language_id": "fs", "situation_id": "x04", "type_id": "pos", "reference_id": "abs", "words": ["vinst"]},
45
-		{"language_id": "fs", "situation_id": "x04", "type_id": "pos", "reference_id": "rel", "words": ["vinst (lut)"]},
46
-		{"language_id": "fs", "situation_id": "x04", "type_id": "pos", "reference_id": "att", "words": ["vinst arend"]},
47
-		{"language_id": "fs", "situation_id": "x04", "type_id": "dir", "reference_id": "abs", "words": ["to vinst"]},
48
-		{"language_id": "fs", "situation_id": "x04", "type_id": "dir", "reference_id": "rel", "words": ["to vinst (lut)"]},
49
-		{"language_id": "fs", "situation_id": "x05", "type_id": "pos", "reference_id": "abs", "words": ["hög"]},
50
-		{"language_id": "fs", "situation_id": "x05", "type_id": "pos", "reference_id": "rel", "words": ["hög (lut)"]},
51
-		{"language_id": "fs", "situation_id": "x05", "type_id": "pos", "reference_id": "att", "words": ["hög arend"]},
52
-		{"language_id": "fs", "situation_id": "x05", "type_id": "dir", "reference_id": "abs", "words": ["to hög"]},
53
-		{"language_id": "fs", "situation_id": "x05", "type_id": "dir", "reference_id": "rel", "words": ["to hög (lut)"]},
54
-		{"language_id": "fs", "situation_id": "x06", "type_id": "pos", "reference_id": "abs", "words": ["ine"]},
55
-		{"language_id": "fs", "situation_id": "x06", "type_id": "pos", "reference_id": "rel", "words": ["ine (lut)"]},
56
-		{"language_id": "fs", "situation_id": "x06", "type_id": "pos", "reference_id": "att", "words": ["ine arend"]},
24
+		{"language_id": "fs", "situation_id": "x00", "type_id": "pos", "reference_id": "abs", "words": ["foran"]},
25
+		{"language_id": "fs", "situation_id": "x00", "type_id": "pos", "reference_id": "rel", "words": ["foran (av)"]},
26
+		{"language_id": "fs", "situation_id": "x00", "type_id": "pos", "reference_id": "att", "words": ["forer"]},
27
+		{"language_id": "fs", "situation_id": "x00", "type_id": "dir", "reference_id": "abs", "words": ["for"]},
28
+		{"language_id": "fs", "situation_id": "x00", "type_id": "dir", "reference_id": "rel", "words": ["for (av)"]},
29
+		{"language_id": "fs", "situation_id": "x01", "type_id": "pos", "reference_id": "abs", "words": ["bakan"]},
30
+		{"language_id": "fs", "situation_id": "x01", "type_id": "pos", "reference_id": "rel", "words": ["bakan (av)"]},
31
+		{"language_id": "fs", "situation_id": "x01", "type_id": "pos", "reference_id": "att", "words": ["baker"]},
32
+		{"language_id": "fs", "situation_id": "x01", "type_id": "dir", "reference_id": "abs", "words": ["bak"]},
33
+		{"language_id": "fs", "situation_id": "x01", "type_id": "dir", "reference_id": "rel", "words": ["bak (av)"]},
34
+		{"language_id": "fs", "situation_id": "x02", "type_id": "pos", "reference_id": "abs", "words": ["uveran"]},
35
+		{"language_id": "fs", "situation_id": "x02", "type_id": "pos", "reference_id": "rel", "words": ["uveran (av)"]},
36
+		{"language_id": "fs", "situation_id": "x02", "type_id": "pos", "reference_id": "att", "words": ["uverer"]},
37
+		{"language_id": "fs", "situation_id": "x02", "type_id": "dir", "reference_id": "abs", "words": ["uver"]},
38
+		{"language_id": "fs", "situation_id": "x02", "type_id": "dir", "reference_id": "rel", "words": ["uver (av)"]},
39
+		{"language_id": "fs", "situation_id": "x03", "type_id": "pos", "reference_id": "abs", "words": ["nederan"]},
40
+		{"language_id": "fs", "situation_id": "x03", "type_id": "pos", "reference_id": "rel", "words": ["nederan (av)"]},
41
+		{"language_id": "fs", "situation_id": "x03", "type_id": "pos", "reference_id": "att", "words": ["nederer"]},
42
+		{"language_id": "fs", "situation_id": "x03", "type_id": "dir", "reference_id": "abs", "words": ["neder"]},
43
+		{"language_id": "fs", "situation_id": "x03", "type_id": "dir", "reference_id": "rel", "words": ["neder (av)"]},
44
+		{"language_id": "fs", "situation_id": "x04", "type_id": "pos", "reference_id": "abs", "words": ["vinstan"]},
45
+		{"language_id": "fs", "situation_id": "x04", "type_id": "pos", "reference_id": "rel", "words": ["vinstan (av)"]},
46
+		{"language_id": "fs", "situation_id": "x04", "type_id": "pos", "reference_id": "att", "words": ["vinster"]},
47
+		{"language_id": "fs", "situation_id": "x04", "type_id": "dir", "reference_id": "abs", "words": ["vinst"]},
48
+		{"language_id": "fs", "situation_id": "x04", "type_id": "dir", "reference_id": "rel", "words": ["vinst (av)"]},
49
+		{"language_id": "fs", "situation_id": "x05", "type_id": "pos", "reference_id": "abs", "words": ["hegan"]},
50
+		{"language_id": "fs", "situation_id": "x05", "type_id": "pos", "reference_id": "rel", "words": ["hegan (av)"]},
51
+		{"language_id": "fs", "situation_id": "x05", "type_id": "pos", "reference_id": "att", "words": ["heger"]},
52
+		{"language_id": "fs", "situation_id": "x05", "type_id": "dir", "reference_id": "abs", "words": ["heg"]},
53
+		{"language_id": "fs", "situation_id": "x05", "type_id": "dir", "reference_id": "rel", "words": ["heg (av)"]},
54
+		{"language_id": "fs", "situation_id": "x06", "type_id": "pos", "reference_id": "abs", "words": ["inan"]},
55
+		{"language_id": "fs", "situation_id": "x06", "type_id": "pos", "reference_id": "rel", "words": ["inan (av)"]},
56
+		{"language_id": "fs", "situation_id": "x06", "type_id": "pos", "reference_id": "att", "words": ["iner"]},
57 57
 		{"language_id": "fs", "situation_id": "x06", "type_id": "dir", "reference_id": "abs", "words": ["in"]},
58
-		{"language_id": "fs", "situation_id": "x06", "type_id": "dir", "reference_id": "rel", "words": ["in (lut)"]},
59
-		{"language_id": "fs", "situation_id": "x07", "type_id": "pos", "reference_id": "abs", "words": ["ute"]},
60
-		{"language_id": "fs", "situation_id": "x07", "type_id": "pos", "reference_id": "rel", "words": ["ute (lut)"]},
61
-		{"language_id": "fs", "situation_id": "x07", "type_id": "pos", "reference_id": "att", "words": ["ute arend"]},
58
+		{"language_id": "fs", "situation_id": "x06", "type_id": "dir", "reference_id": "rel", "words": ["in (av)"]},
59
+		{"language_id": "fs", "situation_id": "x07", "type_id": "pos", "reference_id": "abs", "words": ["utan"]},
60
+		{"language_id": "fs", "situation_id": "x07", "type_id": "pos", "reference_id": "rel", "words": ["utan (av)"]},
61
+		{"language_id": "fs", "situation_id": "x07", "type_id": "pos", "reference_id": "att", "words": ["uter"]},
62 62
 		{"language_id": "fs", "situation_id": "x07", "type_id": "dir", "reference_id": "abs", "words": ["ut"]},
63
-		{"language_id": "fs", "situation_id": "x07", "type_id": "dir", "reference_id": "rel", "words": ["ut (lut)"]},
64
-		{"language_id": "fs", "situation_id": "x08", "type_id": "pos", "reference_id": "abs", "words": ["upe"]},
65
-		{"language_id": "fs", "situation_id": "x08", "type_id": "pos", "reference_id": "rel", "words": ["upe (lut)"]},
66
-		{"language_id": "fs", "situation_id": "x08", "type_id": "pos", "reference_id": "att", "words": ["upe arend"]},
63
+		{"language_id": "fs", "situation_id": "x07", "type_id": "dir", "reference_id": "rel", "words": ["ut (av)"]},
64
+		{"language_id": "fs", "situation_id": "x08", "type_id": "pos", "reference_id": "abs", "words": ["upan"]},
65
+		{"language_id": "fs", "situation_id": "x08", "type_id": "pos", "reference_id": "rel", "words": ["upan (av)"]},
66
+		{"language_id": "fs", "situation_id": "x08", "type_id": "pos", "reference_id": "att", "words": ["uper"]},
67 67
 		{"language_id": "fs", "situation_id": "x08", "type_id": "dir", "reference_id": "abs", "words": ["up"]},
68
-		{"language_id": "fs", "situation_id": "x08", "type_id": "dir", "reference_id": "rel", "words": ["up (lut)"]},
69
-		{"language_id": "fs", "situation_id": "x09", "type_id": "pos", "reference_id": "abs", "words": ["mel"]},
70
-		{"language_id": "fs", "situation_id": "x09", "type_id": "pos", "reference_id": "rel", "words": ["mel (lut)"]},
71
-		{"language_id": "fs", "situation_id": "x09", "type_id": "pos", "reference_id": "att", "words": ["mel arend"]},
72
-		{"language_id": "fs", "situation_id": "x09", "type_id": "dir", "reference_id": "abs", "words": ["to mel"]},
73
-		{"language_id": "fs", "situation_id": "x09", "type_id": "dir", "reference_id": "rel", "words": ["to mel (lut)"]},
68
+		{"language_id": "fs", "situation_id": "x08", "type_id": "dir", "reference_id": "rel", "words": ["up (av)"]},
69
+		{"language_id": "fs", "situation_id": "x09", "type_id": "pos", "reference_id": "abs", "words": ["melan"]},
70
+		{"language_id": "fs", "situation_id": "x09", "type_id": "pos", "reference_id": "rel", "words": ["melan (av)"]},
71
+		{"language_id": "fs", "situation_id": "x09", "type_id": "pos", "reference_id": "att", "words": ["meler"]},
72
+		{"language_id": "fs", "situation_id": "x09", "type_id": "dir", "reference_id": "abs", "words": ["mel"]},
73
+		{"language_id": "fs", "situation_id": "x09", "type_id": "dir", "reference_id": "rel", "words": ["mel (av)"]},
74 74
 		{"language_id": "en", "situation_id": "x00", "type_id": "pos", "reference_id": "abs", "words": ["in front"]},
75 75
 		{"language_id": "en", "situation_id": "x00", "type_id": "pos", "reference_id": "rel", "words": ["in front of"]},
76 76
 		{"language_id": "en", "situation_id": "x00", "type_id": "pos", "reference_id": "att", "words": ["fore", "front"]},
... ...
@@ -27,77 +27,77 @@
27 27
 		{"language_id": "fs", "domain_id": "con", "type_id": "def", "words": ["jen"]},
28 28
 		{"language_id": "fs", "domain_id": "con", "type_id": "den", "words": ["dis"]},
29 29
 		{"language_id": "fs", "domain_id": "con", "type_id": "uni", "words": ["al"]},
30
-		{"language_id": "fs", "domain_id": "con", "type_id": "und", "words": ["et"]},
31
-		{"language_id": "fs", "domain_id": "con", "type_id": "neg", "words": ["ni","nit et"]},
30
+		{"language_id": "fs", "domain_id": "con", "type_id": "und", "words": ["ed"]},
31
+		{"language_id": "fs", "domain_id": "con", "type_id": "neg", "words": ["ni","nit ed"]},
32 32
 		{"language_id": "fs", "domain_id": "thi", "type_id": "int", "words": ["vilk ding", "vat"]},
33 33
 		{"language_id": "fs", "domain_id": "thi", "type_id": "rel", "words": ["vilk ding", "vat"]},
34 34
 		{"language_id": "fs", "domain_id": "thi", "type_id": "def", "words": ["jen ding", "dat"]},
35 35
 		{"language_id": "fs", "domain_id": "thi", "type_id": "den", "words": ["dis ding"]},
36 36
 		{"language_id": "fs", "domain_id": "thi", "type_id": "uni", "words": ["al ding", "alvat"]},
37
-		{"language_id": "fs", "domain_id": "thi", "type_id": "und", "words": ["et ding", "etvat"]},
37
+		{"language_id": "fs", "domain_id": "thi", "type_id": "und", "words": ["ed ding", "edvat"]},
38 38
 		{"language_id": "fs", "domain_id": "thi", "type_id": "neg", "words": ["ni ding", "nivat"]},
39 39
 		{"language_id": "fs", "domain_id": "per", "type_id": "int", "words": ["vilk man", "ve"]},
40 40
 		{"language_id": "fs", "domain_id": "per", "type_id": "rel", "words": ["vilk man", "ve"]},
41 41
 		{"language_id": "fs", "domain_id": "per", "type_id": "def", "words": ["jen man"]},
42 42
 		{"language_id": "fs", "domain_id": "per", "type_id": "den", "words": ["dis man"]},
43 43
 		{"language_id": "fs", "domain_id": "per", "type_id": "uni", "words": ["al man", "alve"]},
44
-		{"language_id": "fs", "domain_id": "per", "type_id": "und", "words": ["et man", "etve"]},
44
+		{"language_id": "fs", "domain_id": "per", "type_id": "und", "words": ["ed man", "edve"]},
45 45
 		{"language_id": "fs", "domain_id": "per", "type_id": "neg", "words": ["ni man", "nive"]},
46 46
 		{"language_id": "fs", "domain_id": "pos", "type_id": "int", "words": ["av vilk man", "ves"]},
47 47
 		{"language_id": "fs", "domain_id": "pos", "type_id": "rel", "words": ["av vilk man", "ves"]},
48 48
 		{"language_id": "fs", "domain_id": "pos", "type_id": "def", "words": ["av jen man"]},
49 49
 		{"language_id": "fs", "domain_id": "pos", "type_id": "den", "words": ["av dis man"]},
50 50
 		{"language_id": "fs", "domain_id": "pos", "type_id": "uni", "words": ["av al man", "alves"]},
51
-		{"language_id": "fs", "domain_id": "pos", "type_id": "und", "words": ["av et man", "etves"]},
51
+		{"language_id": "fs", "domain_id": "pos", "type_id": "und", "words": ["av ed man", "edves"]},
52 52
 		{"language_id": "fs", "domain_id": "pos", "type_id": "neg", "words": ["av ni man", "nives"]},
53 53
 		{"language_id": "fs", "domain_id": "tim", "type_id": "int", "words": ["vilk tid", "van"]},
54 54
 		{"language_id": "fs", "domain_id": "tim", "type_id": "rel", "words": ["vilk tid", "van"]},
55 55
 		{"language_id": "fs", "domain_id": "tim", "type_id": "def", "words": ["jen tid", "dan"]},
56 56
 		{"language_id": "fs", "domain_id": "tim", "type_id": "den", "words": ["dis tid", "no"]},
57 57
 		{"language_id": "fs", "domain_id": "tim", "type_id": "uni", "words": ["al tid", "alvan"]},
58
-		{"language_id": "fs", "domain_id": "tim", "type_id": "und", "words": ["et tid", "etvan"]},
58
+		{"language_id": "fs", "domain_id": "tim", "type_id": "und", "words": ["ed tid", "edvan"]},
59 59
 		{"language_id": "fs", "domain_id": "tim", "type_id": "neg", "words": ["ni tid", "nivan"]},
60 60
 		{"language_id": "fs", "domain_id": "loc", "type_id": "int", "words": ["vilk sted", "var"]},
61 61
 		{"language_id": "fs", "domain_id": "loc", "type_id": "rel", "words": ["vilk sted", "var"]},
62 62
 		{"language_id": "fs", "domain_id": "loc", "type_id": "def", "words": ["jen sted", "dar"]},
63 63
 		{"language_id": "fs", "domain_id": "loc", "type_id": "den", "words": ["dis sted", "har"]},
64 64
 		{"language_id": "fs", "domain_id": "loc", "type_id": "uni", "words": ["al sted", "alvar"]},
65
-		{"language_id": "fs", "domain_id": "loc", "type_id": "und", "words": ["et sted", "etvar"]},
65
+		{"language_id": "fs", "domain_id": "loc", "type_id": "und", "words": ["ed sted", "edvar"]},
66 66
 		{"language_id": "fs", "domain_id": "loc", "type_id": "neg", "words": ["ni sted", "nivar"]},
67 67
 		{"language_id": "fs", "domain_id": "dir", "type_id": "int", "words": ["to vilk sted", "varto"]},
68 68
 		{"language_id": "fs", "domain_id": "dir", "type_id": "rel", "words": ["to vilk sted", "varto"]},
69 69
 		{"language_id": "fs", "domain_id": "dir", "type_id": "def", "words": ["to jen sted", "darto"]},
70 70
 		{"language_id": "fs", "domain_id": "dir", "type_id": "den", "words": ["to dis sted", "harto"]},
71 71
 		{"language_id": "fs", "domain_id": "dir", "type_id": "uni", "words": ["to al sted", "alto"]},
72
-		{"language_id": "fs", "domain_id": "dir", "type_id": "und", "words": ["to et sted", "etto"]},
72
+		{"language_id": "fs", "domain_id": "dir", "type_id": "und", "words": ["to ed sted", "edto"]},
73 73
 		{"language_id": "fs", "domain_id": "dir", "type_id": "neg", "words": ["to ni sted", "nito"]},
74 74
 		{"language_id": "fs", "domain_id": "cau", "type_id": "int", "words": ["fur vilk grund", "varfur"]},
75 75
 		{"language_id": "fs", "domain_id": "cau", "type_id": "rel", "words": ["fur vilk grund", "varfur"]},
76 76
 		{"language_id": "fs", "domain_id": "cau", "type_id": "def", "words": ["fur jen grund", "darfur"]},
77 77
 		{"language_id": "fs", "domain_id": "cau", "type_id": "den", "words": ["fur dis grund", "harfur"]},
78 78
 		{"language_id": "fs", "domain_id": "cau", "type_id": "uni", "words": ["fur al grund", "alfur"]},
79
-		{"language_id": "fs", "domain_id": "cau", "type_id": "und", "words": ["fur et grund", "etfur"]},
79
+		{"language_id": "fs", "domain_id": "cau", "type_id": "und", "words": ["fur ed grund", "edfur"]},
80 80
 		{"language_id": "fs", "domain_id": "cau", "type_id": "neg", "words": ["fur ni grund", "nifur"]},
81 81
 		{"language_id": "fs", "domain_id": "man", "type_id": "int", "words": ["vilk mot", "hur"]},
82 82
 		{"language_id": "fs", "domain_id": "man", "type_id": "rel", "words": ["vilk mot", "hur"]},
83 83
 		{"language_id": "fs", "domain_id": "man", "type_id": "def", "words": ["jen mot", "so"]},
84 84
 		{"language_id": "fs", "domain_id": "man", "type_id": "den", "words": ["dis mot", "so"]},
85 85
 		{"language_id": "fs", "domain_id": "man", "type_id": "uni", "words": ["al mot"]},
86
-		{"language_id": "fs", "domain_id": "man", "type_id": "und", "words": ["et mot"]},
86
+		{"language_id": "fs", "domain_id": "man", "type_id": "und", "words": ["ed mot"]},
87 87
 		{"language_id": "fs", "domain_id": "man", "type_id": "neg", "words": ["ni mot"]},
88 88
 		{"language_id": "fs", "domain_id": "typ", "type_id": "int", "words": ["vilk slag"]},
89 89
 		{"language_id": "fs", "domain_id": "typ", "type_id": "rel", "words": ["vilk slag"]},
90 90
 		{"language_id": "fs", "domain_id": "typ", "type_id": "def", "words": ["jen slag", "solk"]},
91 91
 		{"language_id": "fs", "domain_id": "typ", "type_id": "den", "words": ["dis slag"]},
92 92
 		{"language_id": "fs", "domain_id": "typ", "type_id": "uni", "words": ["al slag"]},
93
-		{"language_id": "fs", "domain_id": "typ", "type_id": "und", "words": ["et slag"]},
93
+		{"language_id": "fs", "domain_id": "typ", "type_id": "und", "words": ["ed slag"]},
94 94
 		{"language_id": "fs", "domain_id": "typ", "type_id": "neg", "words": ["ni slag"]},
95 95
 		{"language_id": "fs", "domain_id": "amo", "type_id": "int", "words": ["vilk mang"]},
96 96
 		{"language_id": "fs", "domain_id": "amo", "type_id": "rel", "words": ["vilk mang"]},
97 97
 		{"language_id": "fs", "domain_id": "amo", "type_id": "def", "words": ["jen mang"]},
98 98
 		{"language_id": "fs", "domain_id": "amo", "type_id": "den", "words": ["dis mang"]},
99 99
 		{"language_id": "fs", "domain_id": "amo", "type_id": "uni", "words": ["al mang"]},
100
-		{"language_id": "fs", "domain_id": "amo", "type_id": "und", "words": ["et mang"]},
100
+		{"language_id": "fs", "domain_id": "amo", "type_id": "und", "words": ["ed mang"]},
101 101
 		{"language_id": "fs", "domain_id": "amo", "type_id": "neg", "words": ["ni mang"]},
102 102
 		{"language_id": "en", "domain_id": "con", "type_id": "int", "words": ["which"]},
103 103
 		{"language_id": "en", "domain_id": "con", "type_id": "rel", "words": ["which"]},
... ...
@@ -2,13 +2,13 @@
2 2
 	"de_grot_diktator": {
3 3
 		"title": "De grot diktator",
4 4
 		"paragraphs": [
5
-			"Ek bid fur fargiving, dok ek vil nit are de verlds herskar — ek ar nit solk en man. Ek vil nit beherske er neddrüke et man, insted ek vil helpe de maner alvan and alvar: De judisk, de hejdisk, de fargig, de vit, …. Vi al skal helpe en de ander fur at vi kan leve ine en beter verld. Vi vil nit hate er farakte us. Dis verld hav plats fur al maner and ur erd ar so rik, at vi al kan ete nok. De levrid kan are so fri and skön; dok vi hav farlatet de veg.",
6
-			"Gridhed hav sükent de maners seler and hav fült de verld med hatrid; hit hav ledet us to elend and blutsketrid. Vi hav utvikelt raskhed, dok ur gester stan stil. Vi lat makiner verke fur us; ur vetrid hav makt us hokmudig and ur klughed hard and unfrendlik; vi denk altu mang and föl altu lit. Dok mer den makiner vi treng manlikhed; mer den klughed vi treng frendlikhed and gudhed. An dis egenheder, ur levrid ar frükridig and al ding ar lost.",
7
-			"Med de helprid av flügtüger and de radio vi ar narer en to de ander den et tid ruk. Fur at de manskap kan bruke dis utfindinger fur en gud sak, hit mut leve med enhed and bruderlikhed. Selv nu mang tused in der verld kan höre min stem, mang tusend fartvivelt verer, kviner and smal kinder — ofaringer av en sistem, vilk fang and kvel unskuldig maner. Ek rup to al, vilk kan hör mek nu: Fartvivel nit! De elend skal farsvinde, van de gridhed farsvind and de biterhed av maner, vilk frük de manskaps forskritrid. De Maners hatrid skal farsvinde and diktarorer skal döe. Dan de kraft, vilk di hav takt fra de folk, skal kome bak to de folk. Selv ef mang blud ar sketet: Tu kempe fur de frihed ar en gud sak.",
8
-			"Kemparer: Kemp nit fur tiraner; maner, vilk farakt ju and mak ju to sklaver; vilk vertskat nit jer levrid, vilk seg to ju, vat je skal make, true and föle! Di skend ju, föd ju, behandel ju lik kanon-föding. Kemp nit fur dis fardervt maner — makin-maner med makin-hövder and makin-herter! Je ar nit makiner, je ar nit direr, je ar maner. Lat de manlikhed blive ine jer herter! Je skal nit hate; bar de unlivt hat, de unlivt and de fardervt.",
9
-			"Kemperar: Kemp nit fur de sklavskap! Kemp fur de frihed! Ine de 17. avsniding av de hajlig Lukas ar skrivt: ‚God ar ine al maner.‘ — nit bar ine en grup av maner, insted ine al maner, ine ju. Je, de folk, hav de kraft; de kraft fur tu bue vapener, dok ok de kraft fur tu sprede gladhed. Je, de folk, hav de kraft fur tu make dis levrid fri and skön, fur tu make dis levrid en vunderfült sak. Darfur: Ine de nam av folkherskrid: Lat us bruke dis kraft! Lat us verde en! Lat us kempe fur en nü verld, fur en beter verld, vilk giv to de maner magrid tu verke, vilk giv en eftertid to de jung and sikerhed to de eld. Ok de tiraner hav truent dis to us fur tu foe de vold, dok di hav lügt. Di mak nit sant dir luving, di vil ni tid. Tiraner frien bar dim selv, dok de folk skal blive sklaver.",
10
-			"Lat us nu kempe fur tu upfüle dis luving. Lat us kempe fur tu make de verld fri, fur tu uvervinde landmarker, gridhed, hatrid and de untillatrid. Lat us kempe fur en verld med farstanrid, en verld, var vetridskap and forskritrid skal lede to al mans gladhed.",
11
-			"Kemparer: Ine de nam av folkherskrid: Lat us al verde en!"
5
+			"Ek bid fur fargiving, dok ek vil nit are de verlds herskar — ek ar nit solk en man. Ek vil nit beherske er neddrüke et man, insted ek vil helpe de maner alvan and alvar: De judisk, de hejdisk, de fargig, de vit, …. Vi al skal helpe en de ander fur at vi kan leve inan en beter verld. Vi vil nit hate er farakte us. Dis verld hav rum fur al maner and ur erd ar so rik, at vi al kan ete nok. De levrid kan are so fri and skön; dok vi hav farlatet de veg.",
6
+			"Gridhed hav sükent de maners seler and hav fült de verld med hatrid; hit hav ledet us to elend and blutskedrid. Vi hav utvikelt raskhed, dok ur gester sta stil. Vi lat makiner verke fur us; ur vetrid hav makt us hokmudig and ur klughed hard and unfrendlik; vi denk altu mang and föl altu lit. Dok mer den makiner vi treng manlikhed; mer den klughed vi treng frendlikhed and gudhed. An dis egenheder, ur levrid ar frükridig and al ding ar lost.",
7
+			"Med de helprid av flügtüger and de radio vi ar narer en to de ander den et tid bak. Fur at de manskap kan bruke dis utfindinger fur en gud sak, hit mut leve med enhed and bruderlikhed. Selv nu mang tused in der verld kan höre min stem, mang tusend fartvivelt verer, kviner and smal kinder — ofaringer av en sistem, vilk fang and kvel unskuldig maner. Ek rup to al, vilk kan höre mek nu: Fartvivel nit! De elend skal farsvinde, van de gridhed farsvind and de biterhed av maner, vilk frük de manskaps forskridrid. De Maners hatrid skal farsvinde and diktarorer skal döe. Dan de kraft, vilk di hav takt fra de folk, skal kome bak to de folk. Selv ef mang blud ar skedet: Tu fekte fur de frihed ar en gud sak.",
8
+			"Fektarer: Fekt nit fur tiraner; maner, vilk farakt ju and mak ju to sklaver; vilk vertskat nit jer levrid, vilk seg to ju, vat je skal make, true and föle! Di skend ju, föd ju, behandel ju lik kanon-föding. Fekt nit fur dis fardervt maner — makin-maner med makin-hövder and makin-herter! Je ar nit makiner, je ar nit direr, je ar maner. Lat de manlikhed blive inan jer herter! Je skal nit hate; bar de unlivt hat, de unlivt and de fardervt.",
9
+			"Fektarer: Fekt nit fur de sklavskap! Fekt fur de frihed! Inan de 17. avsniding av de hajlig Lukas ar skrivt: ‚God ar inan al maner.‘ — nit bar inan en grup ut maner, insted inan al maner, inan ju. Je, de folk, hav de kraft; de kraft fur tu bue vapener, dok ok de kraft fur tu sprede gladhed. Je, de folk, hav de kraft fur tu make dis levrid fri and skön, fur tu make dis levrid en vunderfült sak. Darfur: Inan de nam av folkherskrid: Lat us bruke dis kraft! Lat us verde en! Lat us fekte fur en nü verld, fur en beter verld, vilk giv to de maner de magrid tu verke, vilk giv en eftertid to de jung and sikerhed to de eld. Ok de tiraner hav truent dis to us fur tu foe de vold, dok di hav lügt. Di mak nit san dir luving, di vil ni tid. Tiraner frien bar dim selv, dok de folk skal blive sklaver.",
10
+			"Lat us nu fekte fur tu upfüle dis luving. Lat us fekte fur tu make de verld fri, fur tu uvervinde landmarker, gridhed, hatrid and de untillatrid. Lat us fekte fur en verld med farstarid, en verld, var vetridskap and forskridrid skal lede to al mans gladhed.",
11
+			"Fektarer: Inan de nam av folkherskrid: Lat us al verde en!"
12 12
 		]
13 13
 	}
14 14
 }
15 15
new file mode 100755
... ...
@@ -0,0 +1,4 @@
1
+#!/usr/bin/env sh
2
+
3
+node tools/koralle.js -x
4
+
0 5
old mode 100644
1 6
new mode 100755
... ...
@@ -19,13 +19,31 @@
19 19
        
20 20
 */
21 21
 
22
-var __extends = (this && this.__extends) || function (d, b) {
23
-    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
24
-    function __() { this.constructor = d; }
25
-    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
26
-};
22
+var __extends = (this && this.__extends) || (function () {
23
+    var extendStatics = Object.setPrototypeOf ||
24
+        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
25
+        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
26
+    return function (d, b) {
27
+        extendStatics(d, b);
28
+        function __() { this.constructor = d; }
29
+        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
30
+    };
31
+})();
27 32
 // module lib_base {
28 33
 // }
34
+// Web
35
+/*
36
+declare class Window {
37
+    console : any;
38
+    navigator : any;
39
+    setTimeout : (function_ : (...params : Array<any>)=>void, delay : number, ...params : Array<any>)=>number;
40
+};
41
+declare var window : Window;
42
+declare class Document {
43
+};
44
+declare var document : Document;
45
+ */
46
+;
29 47
 var lib_base;
30 48
 (function (lib_base) {
31 49
     /**
... ...
@@ -36,17 +54,17 @@ var lib_base;
36 54
             {
37 55
                 "id": "web",
38 56
                 "name": "Web",
39
-                "predicate": function () { return (typeof (document) !== "undefined"); }
57
+                "predicate": function () { return (typeof (document) !== "undefined"); },
40 58
             },
41 59
             {
42 60
                 "id": "node",
43 61
                 "name": "Node.js",
44
-                "predicate": function () { return (typeof (process) !== "undefined"); }
62
+                "predicate": function () { return (typeof (process) !== "undefined"); },
45 63
             },
46 64
             {
47 65
                 "id": "rhino",
48 66
                 "name": "Rhino",
49
-                "predicate": function () { return (typeof (java) !== "undefined"); }
67
+                "predicate": function () { return (typeof (java) !== "undefined"); },
50 68
             },
51 69
         ];
52 70
         var id;
... ...
@@ -68,39 +86,168 @@ var lib_base;
68 86
     }
69 87
     lib_base.environment = environment;
70 88
 })(lib_base || (lib_base = {}));
71
-function hash(value) {
89
+/**
90
+ * @author fenris
91
+ */
92
+var instance_verbosity = 0;
93
+/**
94
+ * @author fenris
95
+ */
96
+function instance_collate(value1, value2) {
97
+    if (typeof (value1) === "object") {
98
+        if (value1 == null) {
99
+            return (value2 == null);
100
+        }
101
+        else {
102
+            if ("_collate" in value1) {
103
+                return value1["_collate"](value2);
104
+            }
105
+            else {
106
+                throw (new Error("[collate]" + " " + "object has no such method"));
107
+            }
108
+        }
109
+    }
110
+    else {
111
+        if (instance_verbosity >= 1) {
112
+            lib_log.warn("[collate]" + " " + "primitive value; using default implementation");
113
+        }
114
+        return (value1 === value2);
115
+    }
116
+}
117
+/**
118
+ * @author fenris
119
+ */
120
+function instance_compare(value1, value2) {
121
+    if (typeof (value1) === "object") {
122
+        if ("_compare" in value1) {
123
+            return value1["_compare"](value2);
124
+        }
125
+        else {
126
+            throw (new Error("[compare]" + " " + "object has no such method"));
127
+        }
128
+    }
129
+    else {
130
+        if (instance_verbosity >= 1) {
131
+            lib_log.warn("[compare]" + " " + "primitive value; using default implementation");
132
+        }
133
+        return (value1 <= value2);
134
+    }
135
+}
136
+/**
137
+ * @author fenris
138
+ */
139
+function instance_clone(value) {
72 140
     if (typeof (value) === "object") {
73
-        if ("hash" in value)
74
-            return value.hash();
75
-        else
76
-            throw (new Error("[hash]" + " " + "object has no hash-method"));
141
+        if ("_clone" in value) {
142
+            return value["_clone"]();
143
+        }
144
+        else {
145
+            throw (new Error("[clone]" + " " + "object has no such method"));
146
+        }
77 147
     }
78 148
     else {
79
-        return value.toString();
149
+        if (instance_verbosity >= 1) {
150
+            lib_log.warn("[clone]" + " " + "primitive value; using default implementation");
151
+        }
152
+        return value;
80 153
     }
81 154
 }
82
-function equals(value_x, value_y) {
83
-    if (typeof (value_x) === "object") {
84
-        if ("equals" in value_x)
85
-            return value_x.equals(value_y);
86
-        else
87
-            throw (new Error("[equals]" + " " + "object has no equals-method"));
155
+/**
156
+ * @desc the ability to generate a string out of the element, which identifies it to a high degree
157
+ * @author fenris
158
+ */
159
+function instance_hash(value) {
160
+    if (typeof (value) === "object") {
161
+        if ("_hash" in value) {
162
+            return value["_hash"]();
163
+        }
164
+        else {
165
+            throw (new Error("[hash]" + " " + "object has no such method"));
166
+        }
88 167
     }
89 168
     else {
90
-        return (value_x === value_y);
169
+        if (instance_verbosity >= 1) {
170
+            lib_log.warn("[hash]" + " " + "primitive value; using default implementation");
171
+        }
172
+        return String(value);
91 173
     }
92 174
 }
93
-function show(value) {
175
+/**
176
+ * @desc the ability to map the element to a textual representation (most likely not injective)
177
+ * @author fenris
178
+ */
179
+function instance_show(value) {
94 180
     if (typeof (value) === "object") {
95
-        if ("show" in value)
96
-            return value.show();
97
-        else
98
-            throw (new Error("[show]" + " " + "object has no show-method"));
181
+        if (value == null) {
182
+            return "NULL";
183
+        }
184
+        else {
185
+            if ("_show" in value) {
186
+                return value["_show"]();
187
+            }
188
+            else {
189
+                // throw (new Error("[show]" + " " + "object has no such method"));
190
+                return JSON.stringify(value);
191
+            }
192
+        }
99 193
     }
100 194
     else {
101
-        return value.toString();
195
+        if (instance_verbosity >= 1) {
196
+            lib_log.warn("[show]" + " " + "primitive value; using default implementation");
197
+        }
198
+        return String(value);
102 199
     }
103 200
 }
201
+/**
202
+ * @todo outsource to dedicated plankton-lib
203
+ */
204
+var lib_log;
205
+(function (lib_log) {
206
+    /**
207
+     * @author fenris
208
+     */
209
+    function log() {
210
+        var args = [];
211
+        for (var _i = 0; _i < arguments.length; _i++) {
212
+            args[_i] = arguments[_i];
213
+        }
214
+        /*window.*/ console.log(args);
215
+    }
216
+    lib_log.log = log;
217
+    /**
218
+     * @author fenris
219
+     */
220
+    function info() {
221
+        var args = [];
222
+        for (var _i = 0; _i < arguments.length; _i++) {
223
+            args[_i] = arguments[_i];
224
+        }
225
+        /*window.*/ console.info(args);
226
+    }
227
+    lib_log.info = info;
228
+    /**
229
+     * @author fenris
230
+     */
231
+    function warn() {
232
+        var args = [];
233
+        for (var _i = 0; _i < arguments.length; _i++) {
234
+            args[_i] = arguments[_i];
235
+        }
236
+        /*window.*/ console.warn(args);
237
+    }
238
+    lib_log.warn = warn;
239
+    /**
240
+     * @author fenris
241
+     */
242
+    function error() {
243
+        var args = [];
244
+        for (var _i = 0; _i < arguments.length; _i++) {
245
+            args[_i] = arguments[_i];
246
+        }
247
+        /*window.*/ console.error(args);
248
+    }
249
+    lib_log.error = error;
250
+})(lib_log || (lib_log = {}));
104 251
 /**
105 252
  * @author frac
106 253
  */
... ...
@@ -194,87 +341,116 @@ export interface interface_writeable<type_value> {
194 341
 }
195 342
  */
196 343
 /**
197
- * @author frac
344
+ * @author fenris
198 345
  */
199 346
 /*export*/ var class_maybe = (function () {
200 347
     function class_maybe() {
201 348
     }
202 349
     /**
203 350
      * @desc whether the wrapper is nothing
204
-     * @author frac
351
+     * @author fenris
205 352
      */
206 353
     class_maybe.prototype.is_nothing = function () {
207 354
         throw (new Error("not implemented: class_maybe.is_nothing"));
208 355
     };
209 356
     /**
210 357
      * @desc whether the wrapper is just
211
-     * @author frac
358
+     * @author fenris
212 359
      */
213 360
     class_maybe.prototype.is_just = function () {
214 361
         throw (new Error("not implemented: class_maybe.is_just"));
215 362
     };
216 363
     /**
217 364
      * @desc return the value, stored in the maybe-wrapper
218
-     * @author frac
365
+     * @author fenris
219 366
      */
220 367
     class_maybe.prototype.cull = function () {
221 368
         throw (new Error("not implemented: class_maybe.cull"));
222 369
     };
223 370
     /**
224
-     * @author frac
371
+     * @author fenris
372
+     */
373
+    class_maybe.prototype.toString = function () {
374
+        throw (new Error("not implemented: class_maybe.cull"));
375
+    };
376
+    /**
377
+     * @author fenris
225 378
      */
226 379
     class_maybe.prototype.distinguish = function (action_just, action_nothing) {
227 380
         if (action_nothing === void 0) { action_nothing = function () { }; }
228 381
         throw (new Error("not implemented: class_maybe.distinguish"));
229 382
     };
230 383
     /**
231
-     * @author frac
384
+     * @author fenris
232 385
      */
233 386
     class_maybe.prototype.propagate = function (action) {
234 387
         throw (new Error("not implemented: class_maybe.propagate"));
235 388
     };
389
+    /**
390
+     * @desc [implementation]
391
+     * @author fenris
392
+     */
393
+    class_maybe.prototype._show = function () {
394
+        return this.toString();
395
+    };
236 396
     return class_maybe;
237 397
 }());
238 398
 /**
239
- * @author frac
399
+ * @author fenris
240 400
  */
241 401
 /*export*/ var class_nothing = (function (_super) {
242 402
     __extends(class_nothing, _super);
243 403
     /**
244
-     * @author frac
404
+     * @author fenris
245 405
      */
246 406
     function class_nothing(reason) {
247 407
         if (reason === void 0) { reason = null; }
248
-        _super.call(this);
249
-        this.reason = reason;
408
+        var _this = _super.call(this) || this;
409
+        _this.reason = reason;
410
+        return _this;
250 411
     }
251 412
     /**
252
-     * @author frac
413
+     * @author fenris
253 414
      */
254 415
     class_nothing.prototype.is_nothing = function () {
255 416
         return true;
256 417
     };
257 418
     /**
258
-     * @author frac
419
+     * @author fenris
259 420
      */
260 421
     class_nothing.prototype.is_just = function () {
261 422
         return false;
262 423
     };
263 424
     /**
264
-     * @author frac
425
+     * @author fenris
265 426
      */
266 427
     class_nothing.prototype.cull = function () {
428
+        var message = "you shouldn't cull a nothing-value …";
429
+        lib_log.warn(message);
267 430
         return null;
268 431
     };
269 432
     /**
270
-     * @author frac
433
+     * @author fenris
434
+     */
435
+    class_nothing.prototype.toString = function () {
436
+        return "<\u00B7>";
437
+    };
438
+    /**
439
+     * @author fenris
440
+     */
441
+    class_nothing.prototype.reason_get = function () {
442
+        var content = ((this.reason == null) ? "·" : this.reason);
443
+        return "<- " + content + " ->";
444
+    };
445
+    /**
446
+     * @author fenris
271 447
      */
272 448
     class_nothing.prototype.distinguish = function (action_just, action_nothing) {
273 449
         if (action_nothing === void 0) { action_nothing = function () { }; }
274 450
         action_nothing(this.reason);
275 451
     };
276 452
     /**
277
-     * @author frac
453
+     * @author fenris
278 454
      */
279 455
     class_nothing.prototype.propagate = function (action) {
280 456
         return (new class_nothing(this.reason));
... ...
@@ -282,44 +458,52 @@ export interface interface_writeable<type_value> {
282 458
     return class_nothing;
283 459
 }(class_maybe));
284 460
 /**
285
- * @author frac
461
+ * @author fenris
286 462
  */
287 463
 /*export*/ var class_just = (function (_super) {
288 464
     __extends(class_just, _super);
289 465
     /**
290
-     * @author frac
466
+     * @author fenris
291 467
      */
292 468
     function class_just(value) {
293
-        _super.call(this);
294
-        this.value = value;
469
+        var _this = _super.call(this) || this;
470
+        _this.value = value;
471
+        return _this;
295 472
     }
296 473
     /**
297
-     * @author frac
474
+     * @author fenris
298 475
      */
299 476
     class_just.prototype.is_nothing = function () {
300 477
         return false;
301 478
     };
302 479
     /**
303
-     * @author frac
480
+     * @author fenris
304 481
      */
305 482
     class_just.prototype.is_just = function () {
306 483
         return true;
307 484
     };
308 485
     /**
309
-     * @author frac
486
+     * @author fenris
310 487
      */
311 488
     class_just.prototype.cull = function () {
312 489
         return this.value;
313 490
     };
314 491
     /**
315
-     * @author frac
492
+     * @author fenris
493
+     */
494
+    class_just.prototype.toString = function () {
495
+        var content = instance_show(this.value);
496
+        return "<+ " + content + " +>";
497
+    };
498
+    /**
499
+     * @author fenris
316 500
      */
317 501
     class_just.prototype.distinguish = function (action_just, action_nothing) {
318 502
         if (action_nothing === void 0) { action_nothing = function () { }; }
319 503
         action_just(this.value);
320 504
     };
321 505
     /**
322
-     * @author frac
506
+     * @author fenris
323 507
      */
324 508
     class_just.prototype.propagate = function (action) {
325 509
         return action(this.value);
... ...
@@ -336,9 +520,10 @@ var class_error = (function (_super) {
336 520
      */
337 521
     function class_error(message, suberrors) {
338 522
         if (suberrors === void 0) { suberrors = []; }
339
-        _super.call(this, message);
340
-        this.suberrors = suberrors;
341
-        this.mess = message;
523
+        var _this = _super.call(this, message) || this;
524
+        _this.suberrors = suberrors;
525
+        _this.mess = message;
526
+        return _this;
342 527
     }
343 528
     /**
344 529
      * @override
... ...
@@ -349,548 +534,100 @@ var class_error = (function (_super) {
349 534
     };
350 535
     return class_error;
351 536
 }(Error));
352
-// module lib_base {
353
-// import _instances = require("instances");
354
-// declare var hash;
355
-// declare var equals;
356
-/**
357
- * @author frac
358
- */
359
-/*export*/ var Pair = (function () {
360
-    function Pair(first, second) {
361
-        this.first = first;
362
-        this.second = second;
363
-    }
364
-    Pair.prototype.equals = function (pair) {
365
-        var first_equals;
366
-        var second_equals;
367
-        var exceptions = new Array();
368
-        try {
369
-            first_equals = equals(this.first, pair.first);
370
-        }
371
-        catch (exception) {
372
-            exceptions.push(exception);
373
-        }
374
-        try {
375
-            second_equals = equals(this.second, pair.second);
376
-        }
377
-        catch (exception) {
378
-            exceptions.push(exception);
379
-        }
380
-        if (exceptions.length == 0) {
381
-            return (first_equals && second_equals);
537
+///<reference path="../../base/build/logic-decl.d.ts"/>
538
+var lib_call;
539
+(function (lib_call) {
540
+    /**
541
+     * @desc this is kind of an ugly hack; the motivation is, that the JS-interpreter of many Gecko-based browsers
542
+     *    (e.g. Firefox) won't accept a larger number of stack-frames, which come up when using executor-chains often.
543
+     *    This can be circumvented by deferring inner calls, such that they are moved outside the own stack-frame. This
544
+     *    is possible due to the asynchronous nature of executors. However this does also significantly increase the
545
+     *    overall-time for a long executor-chain (or rather executor-tree) to finish. Therefore it is not recommended
546
+     *    to do this by default.
547
+     * @author frac
548
+     */
549
+    lib_call.default_deferred = ((lib_base.environment() == "web") && (window.navigator.userAgent.indexOf("Firefox") >= 0));
550
+    /**
551
+     * @author fenris
552
+     */
553
+    function schedule(function_, deferred = lib_call.default_deferred) {
554
+        if (!deferred) {
555
+            function_();
382 556
         }
383 557
         else {
384
-            throw (new Exception("Pair:equals:components", "Missing equality-implementation for components while trying to compute equality of pairs", exceptions));
385
-        }
386
-    };
387
-    Pair.prototype.hash = function () {
388
-        var first_hash;
389
-        var second_hash;
390
-        var exceptions = new Array();
391
-        try {
392
-            first_hash = hash(this.first);
393
-        }
394
-        catch (exception) {
395
-            exceptions.push(exception);
396
-        }
397
-        try {
398
-            second_hash = hash(this.second);
558
+            setTimeout(function_, 0);
399 559
         }
400
-        catch (exception) {
401
-            exceptions.push(exception);
560
+    }
561
+    lib_call.schedule = schedule;
562
+})(lib_call || (lib_call = {}));
563
+///<reference path="../../base/build/logic-decl.d.ts"/>
564
+var lib_call;
565
+(function (lib_call) {
566
+    /**
567
+     * @author frac
568
+     * @todo could possibly be replaced by Promise-system
569
+     */
570
+    class class_wait {
571
+    }
572
+    lib_call.class_wait = class_wait;
573
+    /**
574
+     * @author frac
575
+     * @todo could possibly be replaced by Promise-system
576
+     */
577
+    class class_wait_sequential extends class_wait {
578
+        /**
579
+         * @author frac
580
+         */
581
+        constructor(dependencies, action = function () { lib_log.log("all done"); }) {
582
+            super();
583
+            this.dependencies = dependencies;
584
+            this.action = action;
402 585
         }
403
-        if (exceptions.length == 0) {
404
-            return (first_hash + "_" + second_hash);
586
+        /**
587
+         * @author frac
588
+         */
589
+        run_(dependencies) {
590
+            if (dependencies.length > 0) {
591
+                dependencies[0](() => this.run_(dependencies.slice(1)));
592
+            }
593
+            else {
594
+                this.action();
595
+            }
405 596
         }
406
-        else {
407
-            throw (new Exception("Pair:hash:components", "Missing hash for components while trying to retrieve hash of pair", exceptions));
597
+        /**
598
+         * @author frac
599
+         */
600
+        run() {
601
+            this.run_(this.dependencies);
408 602
         }
409
-    };
410
-    Pair.prototype.toString = function () {
411
-        return ("(" + this.first.toString() + ", " + this.second.toString() + ")");
412
-    };
413
-    return Pair;
414
-}());
415
-/**
416
- * @author frac
417
- */
418
-/*export*/ var AbstractMap = (function () {
419
-    function AbstractMap() {
420
-        this.size = 0;
421 603
     }
422
-    AbstractMap.prototype.get = function (key) {
423
-        throw (new ExceptionAbstract("Map:get"));
424
-    };
425
-    AbstractMap.prototype.get_fallback = function (key, fallback) {
426
-        if (fallback === void 0) { fallback = null; }
427
-        try {
428
-            return this.get(key);
604
+    lib_call.class_wait_sequential = class_wait_sequential;
605
+    /**
606
+     * @author frac
607
+     * @todo could possibly be replaced by Promise-system
608
+     */
609
+    class class_wait_parallel extends class_wait {
610
+        /**
611
+         * @author frac
612
+         */
613
+        constructor(dependencies, action = function () { lib_log.log("all done"); }) {
614
+            super();
615
+            this.index = 0;
616
+            this.dependencies = {};
617
+            this.action = action;
618
+            dependencies.forEach(dependency => this.add_dependency(dependency));
429 619
         }
430
-        catch (exception) {
431
-            if (exception_is(exception, "Map:get:not_found"))
432
-                return fallback;
433
-            else
434
-                throw exception;
620
+        /**
621
+         * @author frac
622
+         */
623
+        add_dependency(dependency) {
624
+            this.dependencies["dependency_" + this.index.toString()] = dependency;
625
+            this.index += 1;
435 626
         }
436
-    };
437
-    AbstractMap.prototype.has = function (key) {
438
-        throw (new ExceptionAbstract("Map:has"));
439
-    };
440
-    AbstractMap.prototype.set = function (key, value) {
441
-        throw (new ExceptionAbstract("Map:set"));
442
-    };
443
-    AbstractMap.prototype.extend = function (map) {
444
-        (function (this_) {
445
-            map.forEach(function (value, key) {
446
-                this_.set(key, value);
447
-            });
448
-        })(this);
449
-    };
450
-    AbstractMap.prototype.delete = function (key) {
451
-        throw (new ExceptionAbstract("Map:delete"));
452
-    };
453
-    AbstractMap.prototype.clear = function () {
454
-        throw (new ExceptionAbstract("Map:clear"));
455
-    };
456
-    AbstractMap.prototype.forEach = function (action) {
457
-        throw (new ExceptionAbstract("Map:get"));
458
-    };
459
-    AbstractMap.prototype.pairs = function () {
460
-        var pairs = new Array();
461
-        this.forEach(function (value, key) {
462
-            pairs.push(new Pair(key, value));
463
-        });
464
-        return pairs;
465
-    };
466
-    AbstractMap.prototype.toString = function () {
467
-        return ("{" + this.pairs().map(function (pair) { return (pair.first.toString() + ": " + pair.second.toString()); }).join(", ") + "}");
468
-    };
469
-    return AbstractMap;
470
-}());
471
-/**
472
- * @author frac
473
- */
474
-/*export*/ var EqualityMap = (function (_super) {
475
-    __extends(EqualityMap, _super);
476
-    function EqualityMap() {
477
-        _super.call(this);
478
-        this.clear();
479
-    }
480
-    EqualityMap.prototype.get_index = function (key) {
481
-        var index = this.pairs_["findIndex"](function (pair) { return equals(pair.first, key); });
482
-        return ((index < 0) ? null : index);
483
-    };
484
-    EqualityMap.prototype.get_pair = function (key) {
485
-        var index = this.get_index(key);
486
-        return ((index == null) ? null : this.pairs_[index]);
487
-    };
488
-    EqualityMap.prototype.get = function (key) {
489
-        return this.get_pair(key).second;
490
-    };
491
-    EqualityMap.prototype.has = function (key) {
492
-        try {
493
-            this.get(key);
494
-            return true;
495
-        }
496
-        catch (exception) {
497
-            if (exception_is(exception, "Map:get:not_found"))
498
-                return false;
499
-            else
500
-                throw exception;
501
-        }
502
-    };
503
-    EqualityMap.prototype.set = function (key, value) {
504
-        var pair = this.get_pair(key);
505
-        if (pair != null) {
506
-            console.warn("overwriting value for the following key: ", key);
507
-            pair.second = value;
508
-        }
509
-        else {
510
-            this.pairs_.push(new Pair(key, value));
511
-            this.size += 1;
512
-        }
513
-        return this;
514
-    };
515
-    EqualityMap.prototype.delete = function (key) {
516
-        var index;
517
-        var present;
518
-        try {
519
-            index = this.get_index(key);
520
-            present = true;
521
-        }
522
-        catch (exception) {
523
-            if (exception_is(exception, "Map:get:not_found"))
524
-                present = false;
525
-            else
526
-                throw exception;
527
-        }
528
-        if (present) {
529
-            this.pairs_ = this.pairs_.splice(index, 1);
530
-            this.size -= 1;
531
-            return true;
532
-        }
533
-        else {
534
-            return false;
535
-        }
536
-    };
537
-    EqualityMap.prototype.clear = function () {
538
-        this.pairs_ = new Array();
539
-        this.size = 0;
540
-    };
541
-    EqualityMap.prototype.forEach = function (action) {
542
-        (function (this_) {
543
-            this_.pairs_.forEach(function (pair) {
544
-                action(pair.second, pair.first, this_);
545
-            });
546
-        })(this);
547
-    };
548
-    return EqualityMap;
549
-}(AbstractMap));
550
-/**
551
- * @author frac
552
- */
553
-/*export*/ var HashMap = (function (_super) {
554
-    __extends(HashMap, _super);
555
-    function HashMap() {
556
-        _super.call(this);
557
-        this.clear();
558
-    }
559
-    HashMap.prototype.get = function (key) {
560
-        var hashvalue = hash(key);
561
-        if (hashvalue in this.object)
562
-            return this.object[hashvalue];
563
-        else
564
-            throw (new Exception("Map:get:not_found", "no entry for the given key (hashvalue: '" + hashvalue + "')"));
565
-    };
566
-    HashMap.prototype.has = function (key) {
567
-        return (hash(key) in this.object);
568
-    };
569
-    HashMap.prototype.set = function (key, value) {
570
-        var hashvalue = hash(key);
571
-        if (hashvalue in this.object) {
572
-            console.warn("overwriting value for key with hashvalue '" + hashvalue + "'");
573
-            this.object[hashvalue] = value;
574
-        }
575
-        else {
576
-            this.keys_original.push(key);
577
-            this.object[hashvalue] = value;
578
-            this.size += 1;
579
-        }
580
-        return this;
581
-    };
582
-    HashMap.prototype.delete = function (key) {
583
-        var hashvalue = hash(key);
584
-        if (hashvalue in this.object) {
585
-            this.keys_original = this.keys_original.filter(function (key_) {
586
-                return (hash(key_) != hashvalue);
587
-            });
588
-            delete this.object[hashvalue];
589
-            this.size -= 1;
590
-            return true;
591
-        }
592
-        else {
593
-            return false;
594
-        }
595
-    };
596
-    HashMap.prototype.clear = function () {
597
-        this.keys_original = new Array();
598
-        this.object = {};
599
-        this.size = 0;
600
-    };
601
-    HashMap.prototype.forEach = function (action) {
602
-        (function (this_) {
603
-            this_.keys_original.forEach(function (key) {
604
-                var hashvalue = hash(key);
605
-                var value = this_.object[hashvalue];
606
-                action(value, key, this_);
607
-            });
608
-        })(this);
609
-    };
610
-    return HashMap;
611
-}(AbstractMap));
612
-/**
613
- * @author frac
614
- */
615
-/*exports*/ var SimpleMap = (function (_super) {
616
-    __extends(SimpleMap, _super);
617
-    function SimpleMap() {
618
-        _super.call(this);
619
-    }
620
-    return SimpleMap;
621
-}(HashMap));
622
-/**
623
- * @author frac
624
- */
625
-/*export*/ var Tree = (function () {
626
-    // constructors
627
-    function Tree(parent, value, children) {
628
-        if (parent === void 0) { parent = null; }
629
-        if (value === void 0) { value = null; }
630
-        if (children === void 0) { children = new Array(); }
631
-        this.parent = parent;
632
-        this.value = value;
633
-        this.children = children;
634
-        var this_ = this;
635
-        if (children != null)
636
-            this.children.forEach(function (tree) { tree.parent = this_; });
637
-    }
638
-    // accessors
639
-    Tree.prototype.value_get = function () {
640
-        return this.value;
641
-    };
642
-    Tree.prototype.map = function (transformator, parent) {
643
-        if (parent === void 0) { parent = null; }
644
-        var tree = new Tree(parent, transformator(this.value));
645
-        tree.children = this.children.map(function (tree_) { return tree_.map(transformator, tree); });
646
-        return tree;
647
-    };
648
-    /*
649
-    public children_iterate():void
650
-    {
651
-        this.children.forEach(function (tree:Tree<Value>) {yield tree;});
652
-    }
653
-    */
654
-    Tree.prototype.flatten = function (postorder) {
655
-        if (postorder === void 0) { postorder = false; }
656
-        var reduce = postorder ? 'reduceRight' : 'reduce';
657
-        return this.children[reduce](function (list, tree) { return list.concat(tree.flatten(postorder)); }, [this]);
658
-    };
659
-    Tree.prototype.traverse = function (postorder) {
660
-        if (postorder === void 0) { postorder = false; }
661
-        return this.flatten().map(function (tree) { return tree.value; });
662
-    };
663
-    Tree.prototype.graph = function (prefix) {
664
-        if (prefix === void 0) { prefix = "x"; }
665
-        var vertices = new Array();
666
-        var edges = new Array();
667
-        vertices.push(new Pair(prefix, this.value));
668
-        this.children.forEach(function (tree, index) {
669
-            var prefix_ = prefix + "_" + index.toString();
670
-            edges.push(new Pair(new Pair(prefix, prefix_), null));
671
-            var graph = tree.graph(prefix_);
672
-            vertices = vertices.concat(graph.get_vertices());
673
-            edges = edges.concat(graph.get_edges());
674
-        });
675
-        return new Graph(vertices, edges);
676
-    };
677
-    // mutators
678
-    Tree.prototype.value_set = function (value) {
679
-        this.value = value;
680
-    };
681
-    Tree.prototype.children_add = function (tree) {
682
-        this.children.push(tree);
683
-        tree.parent = this;
684
-    };
685
-    return Tree;
686
-}());
687
-/**
688
- * @author frac
689
- */
690
-/*export*/ var Graph = (function () {
691
-    function Graph(vertices, edges) {
692
-        // [ToDo] check consistency
693
-        this.vertices = vertices;
694
-        this.edges = edges;
695
-    }
696
-    Graph.prototype.get_vertices = function () {
697
-        return this.vertices;
698
-    };
699
-    Graph.prototype.get_edges = function () {
700
-        return this.edges;
701
-    };
702
-    Graph.prototype.graphviz = function (name) {
703
-        if (name === void 0) { name = "conversion"; }
704
-        var script = "";
705
-        script += ("digraph " + name + "\n");
706
-        script += ("{\n");
707
-        this.vertices.forEach(function (vertex) {
708
-            var line = "";
709
-            line += ("\t" + vertex.first);
710
-            var parameters = new HashMap();
711
-            parameters.set("shape", "circle");
712
-            if (vertex.first != null)
713
-                parameters.set("label", vertex.second.toString());
714
-            line += (" [" + parameters.pairs().map(function (pair) { return (pair.first + "='" + pair.second + "'"); }).join(",") + "]");
715
-            line += "\n";
716
-            script += line;
717
-        });
718
-        script += ("\t\n");
719
-        this.edges.forEach(function (edge) {
720
-            var line = "";
721
-            line += ("\t" + edge.first.first + " -> " + edge.first.second);
722
-            var parameters = new HashMap();
723
-            if (edge.second != null)
724
-                parameters.set("label", edge.second.toString());
725
-            line += (" [" + parameters.pairs().map(function (pair) { return (pair.first + "='" + pair.second + "'"); }).join(",") + "]");
726
-            line += "\n";
727
-            script += line;
728
-        });
729
-        script += ("}\n");
730
-        return script;
731
-    };
732
-    return Graph;
733
-}());
734
-/*export*/ function tree_test() {
735
-    var tree = new Tree(null, 3, [
736
-        new Tree(null, 1, [
737
-            new Tree(null, 0),
738
-            new Tree(null, 2),
739
-        ]),
740
-        new Tree(null, 5, [
741
-            new Tree(null, 4),
742
-            new Tree(null, 6),
743
-        ]),
744
-    ]);
745
-    return tree;
746
-}
747
-/*
748
-*/
749
-// }
750
-/**
751
- * @author frac
752
- */
753
-var class_set = (function () {
754
-    /**
755
-     * @author frac
756
-     */
757
-    function class_set(elements) {
758
-        var _this = this;
759
-        if (elements === void 0) { elements = []; }
760
-        this.elements = [];
761
-        elements.forEach(function (element) { return _this.add(element); });
762
-    }
763
-    /**
764
-     * @author frac
765
-     */
766
-    class_set.prototype.elements_get = function () {
767
-        return this.elements;
768
-    };
769
-    /**
770
-     * @author frac
771
-     */
772
-    class_set.prototype.add = function (element) {
773
-        if (this.elements.indexOf(element) < 0) {
774
-            this.elements.push(element);
775
-        }
776
-    };
777
-    /**
778
-     * @author frac
779
-     */
780
-    class_set.prototype.forEach = function (action) {
781
-        this.elements.forEach(action);
782
-    };
783
-    return class_set;
784
-}());
785
-var __extends = (this && this.__extends) || function (d, b) {
786
-    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
787
-    function __() { this.constructor = d; }
788
-    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
789
-};
790
-var lib_call;
791
-(function (lib_call) {
792
-    /**
793
-     * @desc this is kind of an ugly hack; the motivation is, that the JS-interpreter of many Gecko-based browsers
794
-     *    (e.g. Firefox) won't accept a larger number of stack-frames, which come up when using executor-chains often.
795
-     *    This can be circumvented by deferring inner calls, such that they are moved outside the own stack-frame. This
796
-     *    is possible due to the asynchronous nature of executors. However this does also significantly increase the
797
-     *    overall-time for a long executor-chain (or rather executor-tree) to finish. Therefore it is not recommended
798
-     *    to do this by default.
799
-     * @author frac
800
-     */
801
-    lib_call.default_deferred = ((typeof (navigator) === "undefined") ? false : (navigator.userAgent.indexOf("Firefox") >= 0));
802
-    /**
803
-     * @author fenris
804
-     */
805
-    function schedule(function_, deferred) {
806
-        if (deferred === void 0) { deferred = lib_call.default_deferred; }
807
-        if (!deferred) {
808
-            function_();
809
-        }
810
-        else {
811
-            setTimeout(function_, 0);
812
-        }
813
-    }
814
-    lib_call.schedule = schedule;
815
-})(lib_call || (lib_call = {}));
816
-///<reference path="../../base/build/logic.d.ts"/>
817
-var lib_call;
818
-(function (lib_call) {
819
-    /**
820
-     * @author frac
821
-     * @todo could possibly be replaced by Promise-system
822
-     */
823
-    var class_wait = (function () {
824
-        function class_wait() {
825
-        }
826
-        return class_wait;
827
-    }());
828
-    lib_call.class_wait = class_wait;
829
-    /**
830
-     * @author frac
831
-     * @todo could possibly be replaced by Promise-system
832
-     */
833
-    var class_wait_sequential = (function (_super) {
834
-        __extends(class_wait_sequential, _super);
835
-        /**
836