Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/efun/unique_array b/doc/efun/unique_array
new file mode 100644
index 0000000..390c56e
--- /dev/null
+++ b/doc/efun/unique_array
@@ -0,0 +1,47 @@
+SYNOPSIS
+        mixed unique_array(object *obj, string|closure fun)
+        mixed unique_array(object *obj, string|closure fun, mixed skip)
+        mixed unique_array(object *obj, string|closure fun, mixed extra...
+                                      , mixed skip)
+
+BESCHREIBUNG
+        Gruppiert alle Objekte aus <*obj>, fuer die die Funktion <fun>
+        den gleichen Wert liefert. Wenn <*obj> etwas anderes als Objekte
+        enthaelt, werden diese ignoriert.
+        
+        Ist die Funktion mit Namen angegeben, wird sie in jedem Objekt
+        in <*obj> einmal aufgerufen. Wurden <extra> Argumente
+        gegeben, werden diese an die Funktion bei jedem Aufruf als
+        Parameter uebergeben.
+
+        Ist die Funktion als Closure angegeben, wird sie fuer jedes Objekt
+        in <*obj> einmal aufgerufen, wobei das Objekt als erstes Argument
+        uebergeben wird, gefolgt von etwaiigen <extra> Argumenten.
+
+        Wird ein Argument <skip> angegeben (bei Verwendung von <extra>
+        Argumenten muss dies geschehen), und entspricht <skip> dem
+        Resultat von <separator> fuer ein Element aus <*obj>, so wird
+        dieses Element nicht in das Resultat von unique_array()
+        uebernommen.
+        
+        Das Resultat von unique_array() hat die Form:
+
+            ({ ({same1:1, same1:2, ... same1:n}),
+               ({same2:1, same2:2, ... same2:n}),
+               ({samem:1, samem:2, ... samem:n}) })
+
+BEISPIEL
+        Um ein Array von Arrays zu erhalten, das alle Benutzer, nach Level
+        gruppiert, enthaelt:
+
+            mixed *arr;
+            arr=unique_array(users(), "_query_level", -1);
+
+        Goetter haben einen Level von -1. Sie werden nicht in arr aufgenommen,
+        weil <skip> == -1.
+
+SIEHE AUCH
+      Arrays:       filter(E), map(E)
+      Objektarrays: filter_objects(E), map_objects(E)
+      Mappings:     filter(E), map(E), filter_indices(E), map_indices(E)
+