User guide
authorGary King <gwking@metabang.com>
Wed, 1 Oct 2008 14:23:41 +0000 (10:23 -0400)
committerGary King <gwking@metabang.com>
Wed, 1 Oct 2008 14:23:41 +0000 (10:23 -0400)
darcs-hash:20081001142341-3cc5d-c75ba18cfd9d6f98dc8f9777b998b4086c8fc067.gz

17 files changed:
website/source/resources/header.md
website/source/resources/shared-header.md [new file with mode: 0644]
website/source/resources/ug-footer.md [new file with mode: 0644]
website/source/resources/ug-header.md [new file with mode: 0644]
website/source/user-guide-details/algorithms.mmd [new file with mode: 0644]
website/source/user-guide-details/deprecated.mmd [new file with mode: 0644]
website/source/user-guide-details/dotty.mmd [new file with mode: 0644]
website/source/user-guide-details/introspection.mmd [new file with mode: 0644]
website/source/user-guide-details/iteration.mmd [new file with mode: 0644]
website/source/user-guide-details/manipulation.mmd [new file with mode: 0644]
website/source/user-guide-details/miscellaneous.mmd [new file with mode: 0644]
website/source/user-guide-details/motivation.mmd [new file with mode: 0644]
website/source/user-guide-details/random-graphs.mmd [new file with mode: 0644]
website/source/user-guide-details/search.mmd [new file with mode: 0644]
website/source/user-guide.css [new file with mode: 0644]
website/source/user-guide.md [new file with mode: 0644]
website/website.tmproj [new file with mode: 0644]

index 75f35f1..914a580 100644 (file)
@@ -1,18 +1,6 @@
-{include shared-links.md}
-
-{set-property html yes}
-{set-property style-sheet "http://common-lisp.net/project/cl-containers/shared/style-200.css"}
-{set-property author "Gary Warren King"}
+{include shared-header.md}
 
 [devel-list]: http://common-lisp.net/cgi-bin/mailman/listinfo/cl-graph-devel
 [cliki-home]: http://www.cliki.net//cl-graph
 [tarball]: http://common-lisp.net/project/cl-graph/cl-graph.tar.gz
 
-<div id="header">
-       <span class="logo"><a href="http://www.metabang.com/" title="metabang.com"><img src="http://common-lisp.net/project/cl-containers/shared/metabang-2.png" title="metabang.com" width="100" alt="Metabang Logo" /></a></span>
-
-## CL-Graph
-
-#### Better than sliced mangoes!
-
-</div>
diff --git a/website/source/resources/shared-header.md b/website/source/resources/shared-header.md
new file mode 100644 (file)
index 0000000..db3ccde
--- /dev/null
@@ -0,0 +1,13 @@
+{include shared-links.md}
+{set-property html yes}
+{set-property style-sheets "http://common-lisp.net/project/cl-containers/shared/style-200.css" "user-guide.css"}
+{set-property author "Gary Warren King"}
+
+<div id="header">
+       <span class="logo"><a href="http://www.metabang.com/" title="metabang.com"><img src="http://common-lisp.net/project/cl-containers/shared/metabang-2.png" title="metabang.com" width="100" alt="Metabang Logo" /></a></span>
+
+## CL-Graph
+
+#### Better than sliced mangoes!
+
+</div>
diff --git a/website/source/resources/ug-footer.md b/website/source/resources/ug-footer.md
new file mode 100644 (file)
index 0000000..dbb27c4
--- /dev/null
@@ -0,0 +1,15 @@
+<div id="footer">
+<div id="buttons">
+    <a class="nav" href="http://validator.w3.org/check/referer" title="xhtml1.1"><img src="http://common-lisp.net/project/cl-containers/shared/buttons/xhtml.gif" width="80" height="15" title="valid xhtml button" alt="valid xhtml" /></a>
+    <a class="nav" href="http://common-lisp.net/project/cl-markdown/" title="Mark with CL-Markdown"><img src="http://common-lisp.net/project/cl-containers/shared/buttons/cl-markdown.png" width="80" height="15" title="Made with CL-Markdown" alt="CL-Markdown" /></a>
+    <a class="nav" href="http://www.catb.org/hacker-emblem/" title="hacker"><img src="http://common-lisp.net/project/cl-containers/shared/buttons/hacker.png" width="80" height="15" title="hacker emblem" alt="hacker button" /></a>
+    <a class="nav" href="http://www.lisp.org/" title="Association of Lisp Users"><img src="http://common-lisp.net/project/cl-containers/shared/buttons/lambda-lisp.png" width="80" height="15" title="ALU emblem" alt="ALU button" /></a>
+    <a class="nav" href="http://common-lisp.net/" title="Common-Lisp.net"><img src="http://common-lisp.net/project/cl-containers/shared/buttons/lisp-lizard.png" width="80" height="15" title="Common-Lisp.net" alt="Common-Lisp.net button" /></a>
+</div>
+
+<span id="copyright"> Copyright (c) 2001 - 2008 Gary Warren King (gwking@metabang.com)</span> 
+<span id="license-note">CL-Containers has an MIT style license</span>
+<span id="timestamp">Last updated {today} at {now}</span>
+
+</div>
+
diff --git a/website/source/resources/ug-header.md b/website/source/resources/ug-header.md
new file mode 100644 (file)
index 0000000..2d261df
--- /dev/null
@@ -0,0 +1,2 @@
+{include shared-header.md}
+{set-property title "CL-Graph Users Guide"}
diff --git a/website/source/user-guide-details/algorithms.mmd b/website/source/user-guide-details/algorithms.mmd
new file mode 100644 (file)
index 0000000..c00e029
--- /dev/null
@@ -0,0 +1,32 @@
+{docs connected-components}
+{docs connected-component-count}
+{docs find-connected-components}
+{docs connected-graph-p}
+{docs breadth-first-visitor}
+{docs breadth-first-search-graph}
+{docs dfs}
+{docs dfs-visit}
+{docs dfs-tree-edge-p}
+{docs dfs-back-edge-p}
+{docs dfs-forward-edge-p}
+{docs dfs-cross-edge-p}
+{docs dfs-edge-type}
+{docs mst-find-set}
+{docs mst-make-set}
+{docs mst-tree-union}
+{docs mst-link}
+{docs minimum-spanning-tree}
+
+{docs generate-directed-free-tree}
+
+{docs project-bipartite-graph}
+
+{docs traverse-elements}
+{docs traverse-elements-helper}
+
+{docs assortativity-coefficient}
+{docs graph-roots}
+
+{docs topological-sort}
+{docs assign-level}
+
diff --git a/website/source/user-guide-details/deprecated.mmd b/website/source/user-guide-details/deprecated.mmd
new file mode 100644 (file)
index 0000000..e0eb775
--- /dev/null
@@ -0,0 +1,9 @@
+{docs map-over-all-combinations-of-k-vertexes}
+{docs map-over-all-combinations-of-k-edges}
+{docs tag-edges}
+{docs tag-all-edges}
+{docs untag-edges}
+{docs untag-all-edges}
+
+{docs tagged-edge-p}
+{docs untagged-edge-p}
diff --git a/website/source/user-guide-details/dotty.mmd b/website/source/user-guide-details/dotty.mmd
new file mode 100644 (file)
index 0000000..ae3790f
--- /dev/null
@@ -0,0 +1,9 @@
+{docs graph->dot}
+{docs graph->dot-properties}
+{docs vertex->dot}
+{docs edge->dot}
+{comment {docs (setf dot-attribute-value)}}
+{docs dot-attribute-value}
+{docs graph->dot-external}
+{docs ensure-valid-dot-attribute}
+{docs write-name-for-dot}
diff --git a/website/source/user-guide-details/introspection.mmd b/website/source/user-guide-details/introspection.mmd
new file mode 100644 (file)
index 0000000..657d4bd
--- /dev/null
@@ -0,0 +1,27 @@
+{docs edge-count}
+{docs vertex-count}
+{docs source-edge-count}
+{docs target-edge-count}
+{docs number-of-neighbors}
+{docs has-children-p}
+{docs has-parent-p}
+
+{docs source-vertex}
+{docs target-vertex}
+{docs undirected-edge-p}
+{docs directed-edge-p}
+{docs make-vertex-edges-container}
+{docs other-vertex}
+{docs vertices-share-edge-p}
+
+{docs out-edge-for-vertex-p}
+{docs in-undirected-cycle-p}
+{docs adjacentp}
+{docs depth}
+{docs edge-lessp-by-weight}
+{docs edge-lessp-by-direction}
+{docs weight}
+
+{docs rootp}
+{docs in-cycle-p}
+{docs any-undirected-cycle-p}
diff --git a/website/source/user-guide-details/iteration.mmd b/website/source/user-guide-details/iteration.mmd
new file mode 100644 (file)
index 0000000..6cdbb22
--- /dev/null
@@ -0,0 +1,15 @@
+{docs iterate-children}
+{docs iterate-parents}
+{docs iterate-neighbors}
+{docs iterate-edges}
+{docs iterate-source-edges}
+{docs iterate-target-edges}
+{docs source-edges}
+{docs target-edges}
+{docs child-vertexes}
+{docs parent-vertexes}
+{docs neighbor-vertexes}
+{docs iterate-vertexes}
+{docs edges}
+{docs vertexes}
+
diff --git a/website/source/user-guide-details/manipulation.mmd b/website/source/user-guide-details/manipulation.mmd
new file mode 100644 (file)
index 0000000..a34af6f
--- /dev/null
@@ -0,0 +1,17 @@
+{docs make-graph}
+{docs add-edges-to-graph}
+{docs add-vertex}
+{docs add-edge}
+{docs add-edge-between-vertexes}
+{docs delete-edge}
+{docs delete-all-edges}
+{docs delete-edge-between-vertexes}
+{docs delete-vertex}
+{docs replace-vertex}
+{docs add-edge-to-vertex}
+
+{docs make-vertex-container}
+{docs make-edge-container}
+{docs make-edge-for-graph}
+{docs make-vertex-for-graph}
+{docs make-graph-from-vertexes}
\ No newline at end of file
diff --git a/website/source/user-guide-details/miscellaneous.mmd b/website/source/user-guide-details/miscellaneous.mmd
new file mode 100644 (file)
index 0000000..a77d6b2
--- /dev/null
@@ -0,0 +1,9 @@
+{docs force-undirected}
+
+{docs renumber-vertexes}
+{docs renumber-edges}
+{docs initialize-vertex-data}
+
+{docs complete-links}
+{docs subgraph-containing}
+{docs make-filtered-graph}
\ No newline at end of file
diff --git a/website/source/user-guide-details/motivation.mmd b/website/source/user-guide-details/motivation.mmd
new file mode 100644 (file)
index 0000000..dda2672
--- /dev/null
@@ -0,0 +1,31 @@
+A significant portion of almost any non-trivial programming
+effort goes into the manipulation of structured data. Many
+data structures can be viewed as containers. These may be
+ordered or unordered, associative (indexed) or sequential and
+so forth. The power and beauty of some programming languages
+derives in no small part from their ability to handle
+container classes well (Smalltalk comes to mind) and other
+languages have gone to great lengths to incorporate flexible
+containers into their frameworks (C++'s STL for example).
+Although Common Lisp includes a number of *containers*
+(hash-tables, lists and arrays) there are many useful data
+structures that are not built-in (e.g., binary search trees)
+and the existing containers have a fragmented interface that
+shows Lisp's peripatetic evolution.
+
+The Common Lisp Container Library ({clcl}) extends Lisp in two
+ways: it adds new container functionality and, by
+standardizing container interfaces, it makes using them
+significantly easier. The standard interface also lends
+itself to more a flexible design and development process
+since data structure decisions are easier to change as the
+program evolves. {clcl}~ thereby expends the power of Lisp and
+makes it an even better tool for both rapid prototyping
+\emph{and} production code.
+
+The remainder of this document will cover the container types
+available in {clcl}, the methods applicable to these
+containers, information about the internal design of {clcl}
+and examples of containers in use. As will become evident,
+{clcl}'s design borrows from the Standard Template Library,
+Smalltalk and existing Lisp idioms wherever possible.
diff --git a/website/source/user-guide-details/random-graphs.mmd b/website/source/user-guide-details/random-graphs.mmd
new file mode 100644 (file)
index 0000000..45dae28
--- /dev/null
@@ -0,0 +1,13 @@
+Requires [cl-variants][].
+
+{docs generate-gnm}
+{docs generate-gnp}
+{docs generate-undirected-graph-via-assortativity-matrix}
+{docs generate-undirected-graph-via-vertex-probabilities}
+{docs generate-scale-free-graph}
+{docs generate-assortative-graph-with-degree-distributions}
+{docs generate-simple-preferential-attachment-graph}
+{docs generate-preferential-attachment-graph}
+
+{docs graph-edge-mixture-matrix}
+{docs graph-mixing-matrix}
diff --git a/website/source/user-guide-details/search.mmd b/website/source/user-guide-details/search.mmd
new file mode 100644 (file)
index 0000000..76ae1c6
--- /dev/null
@@ -0,0 +1,9 @@
+{docs find-vertex}
+{docs search-for-vertex}
+{docs find-edge}
+{docs find-edge-between-vertexes}
+{docs find-vertex-if}
+{docs find-edge-if}
+{docs find-edges-if}
+{docs find-vertexes-if}
+{docs find-edge-between-vertexes-if}
diff --git a/website/source/user-guide.css b/website/source/user-guide.css
new file mode 100644 (file)
index 0000000..a0c4162
--- /dev/null
@@ -0,0 +1,207 @@
+/* @group toc */
+
+.table-of-contents {
+       font-size: 90%;
+       margin-bottom: 1em;
+       padding-bottom: 1em;
+}
+
+.table-of-contents h2, h3, h4 {
+       padding-top: 0;
+       padding-bottom: 0;
+       margin-top: 0;
+       margin-bottom: 1px;
+}
+
+.table-of-contents h2 {
+       font-size: inherit;
+       font-style: inherit;
+       position: relative;
+       left: 2em;
+}
+
+.table-of-contents h3 {
+       font-size: inherit;
+       font-style: inherit;
+       position: relative;
+       left: 4em;
+}
+
+.table-of-contents h4 {
+       font-size: inherit;
+       font-style: inherit;
+       position: relative;
+       left: 6em;
+}
+
+.table-of-contents h5 {
+       font-size: inherit;
+       font-style: inherit;
+       position: relative;
+       left: 8px;
+}
+       
+/* @end */
+
+/* @group anchors */
+
+a.none { 
+       text-decoration: none;
+       color:black }
+       
+a.none:visited { text-decoration: none; color:black }
+
+a.none:active { text-decoration: none; color:black }
+
+a.none:hover { text-decoration: none; color:black }
+
+a { 
+       text-decoration: none; 
+       }
+       
+a:visited { 
+       text-decoration: none; 
+}
+
+a:active { 
+       text-decoration: underline; 
+}
+
+a:hover { 
+       text-decoration: underline; 
+}
+
+/* @end */
+
+/* @group Reference */
+
+.reference {
+       padding-bottom: 1em;
+}
+
+.reference h3 {
+       margin-top: 2em;
+       font-size: 110%;
+       border-bottom: 1px solid silver;
+       border-top: 4px solid gray;
+       padding-top: 3px;
+       padding-bottom: 3px;
+}
+
+
+
+/* @end */
+
+body {
+  font-family: Georgia, "Times New Roman", Times, serif;
+       margin-right: 0.5in;
+       margin-left: 0.5in;
+       margin-bottom: 0.25px;
+}
+
+h1, h2, h3, h4 { 
+  font-family: "Lucida Grande", Lucida, Verdana, sans-serif;
+}
+
+h2 {
+}
+
+h3, h4 {
+       font-style: italic;
+}
+
+.hidden {
+       visibility: hidden;
+}
+
+.documentation {
+       margin-right: 1em;
+       margin-left: 1em;
+}
+
+.function {
+       
+}
+
+.documentation.header {
+       display: block;
+       position: relative;
+       border-top-style: solid;
+       border-top-width: 1pt;
+       padding-top: 4px;
+       margin-top: 2em;
+}
+
+.documentation.contents {
+       top: 10px;
+       position: relative;
+}
+
+.documentation-name {
+       font-weight: bold;
+       float: left;
+       padding-right: 10px;
+       width: 125px;
+}
+
+.documentation-kind {
+       float: right;
+       font-style: italic;
+       color: gray;
+       padding-left: 10px;
+}
+
+.documentation-arguments {
+       float: left;
+       width: 350px;
+       font-style: italic;
+}
+
+.documentation p {
+       clear: both;
+       margin-right: 1em;
+       margin-left: 1em;
+}
+
+pre {
+       background-color: #ffc8ff;
+       overflow: auto;
+       padding-bottom: 5px;
+       margin-right: 1cm;
+       margin-left: 1cm;
+       font-family: "Courier New", Courier, mono;
+}
+
+.note {
+       border: 2px inset gray;
+       padding: 0.5em;
+       margin-right: 2em;
+       margin-left: 2em;
+}
+
+#footer {
+       margin-top: 2em;
+       border-top-style: inset;
+       border-top-width: 2px;
+}
+#navigation li {
+       display: inline;
+       border-right-style: dotted;
+       border-right-width: 1px;
+       border-left-style: dotted;
+       border-left-width: 1px;
+       border-collapse: collapse;
+       padding-right: 0.25em;
+       padding-left: 0.25em;
+       margin-right: 1em;
+}
+
+#navigation {
+       text-align: center;
+}
+
+#timestamp {
+       font-size: 80%;
+       text-align: right;
+}
+
diff --git a/website/source/user-guide.md b/website/source/user-guide.md
new file mode 100644 (file)
index 0000000..a6b53f2
--- /dev/null
@@ -0,0 +1,85 @@
+{include resources/ug-header.md}
+{set-property title "CL-Graph User's Guide"}
+{set-property style-sheet user-guide}
+{set-property docs-package cl-graph}
+
+# CL-Graph User's Guide
+
+# Table of Contents 
+
+{table-of-contents :start 2 :depth 3}
+
+## Introduction
+
+In Mathematics and Computer Science, a _graph_ is a
+collection of _vertexes_ connected by _edges_. Edges may be
+_directed_ or _undirected_ (i.e., sometimes you really can't
+get there from here). Both edges and vertexes may have
+additional data associated with them. Graphs are useful
+because you can use them to represent most anything: food
+webs, hypertext, the world wide web, protein/protein
+interactions, language, who publishes with whom, etc.
+
+CL-Graph is a general graph library built on
+[cl-containers][]. It provides an open-ended API for
+building, examining and manipulating graphs as well as
+implementations of many of the usual suspects of graph
+algorithms and measures. 
+
+## Using a graph
+
+### Creation and manipulation
+
+{include "user-guide-details/manipulation.mmd"}
+
+### Tell me about yourself - introspection
+
+{include "user-guide-details/introspection.mmd"}
+
+### Search
+
+{include "user-guide-details/search.mmd"}
+
+### Algorithms
+
+{include "user-guide-details/algorithms.mmd"}
+
+### Iteration
+
+{include "user-guide-details/iteration.mmd"}
+
+### CL-Graph and dotty
+
+{include "user-guide-details/dotty.mmd"}
+
+### Random Graphs
+
+{include user-guide-details/random-graphs.mmd}
+
+### Miscellaneous
+
+{include user-guide-details/miscellaneous.mmd}
+
+### Deprecated - to be removed soon 
+
+{include user-guide-details/deprecated.mmd}
+
+## Index of Functions
+
+{docs-index (function macro) function}
+
+<hr>
+
+{comment
+  
+#### Glossary
+
+{glossary}
+
+
+#### Footnotes
+
+{footnotes}
+}
+
+{include resources/ug-footer.md}
diff --git a/website/website.tmproj b/website/website.tmproj
new file mode 100644 (file)
index 0000000..6ead674
--- /dev/null
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>currentDocument</key>
+       <string>source/user-guide-details/iteration.mmd</string>
+       <key>documents</key>
+       <array>
+               <dict>
+                       <key>expanded</key>
+                       <true/>
+                       <key>name</key>
+                       <string>source</string>
+                       <key>regexFolderFilter</key>
+                       <string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
+                       <key>sourceDirectory</key>
+                       <string>source</string>
+               </dict>
+               <dict>
+                       <key>filename</key>
+                       <string>../../shared/shared-links.md</string>
+                       <key>lastUsed</key>
+                       <date>2008-10-01T13:35:22Z</date>
+               </dict>
+       </array>
+       <key>fileHierarchyDrawerWidth</key>
+       <integer>190</integer>
+       <key>metaData</key>
+       <dict>
+               <key>../../shared/shared-links.md</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>41</integer>
+                               <key>line</key>
+                               <integer>23</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>17</integer>
+               </dict>
+               <key>source/index.md</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>0</integer>
+                               <key>line</key>
+                               <integer>1</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>0</integer>
+               </dict>
+               <key>source/resources/footer.md</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>6</integer>
+                               <key>line</key>
+                               <integer>14</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>0</integer>
+               </dict>
+               <key>source/resources/header.md</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>0</integer>
+                               <key>line</key>
+                               <integer>6</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>0</integer>
+               </dict>
+               <key>source/resources/navigation.md</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>0</integer>
+                               <key>line</key>
+                               <integer>1</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>0</integer>
+               </dict>
+               <key>source/resources/shared-header.md</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>0</integer>
+                               <key>line</key>
+                               <integer>5</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>0</integer>
+               </dict>
+               <key>source/resources/ug-header.md</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>0</integer>
+                               <key>line</key>
+                               <integer>2</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>0</integer>
+               </dict>
+               <key>source/user-guide-details/algorithms.mmd</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>0</integer>
+                               <key>line</key>
+                               <integer>0</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>0</integer>
+               </dict>
+               <key>source/user-guide-details/deprecated.mmd</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>0</integer>
+                               <key>line</key>
+                               <integer>0</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>0</integer>
+               </dict>
+               <key>source/user-guide-details/dotty.mmd</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>0</integer>
+                               <key>line</key>
+                               <integer>0</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>0</integer>
+               </dict>
+               <key>source/user-guide-details/introspection.mmd</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>0</integer>
+                               <key>line</key>
+                               <integer>0</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>0</integer>
+               </dict>
+               <key>source/user-guide-details/iteration.mmd</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>6</integer>
+                               <key>line</key>
+                               <integer>0</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>0</integer>
+               </dict>
+               <key>source/user-guide-details/manipulation.mmd</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>0</integer>
+                               <key>line</key>
+                               <integer>0</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>0</integer>
+               </dict>
+               <key>source/user-guide-details/miscellaneous.mmd</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>0</integer>
+                               <key>line</key>
+                               <integer>0</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>0</integer>
+               </dict>
+               <key>source/user-guide-details/motivation.mmd</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>6</integer>
+                               <key>line</key>
+                               <integer>29</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>0</integer>
+               </dict>
+               <key>source/user-guide-details/random-graphs.mmd</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>0</integer>
+                               <key>line</key>
+                               <integer>0</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>0</integer>
+               </dict>
+               <key>source/user-guide-details/search.mmd</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>0</integer>
+                               <key>line</key>
+                               <integer>0</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>0</integer>
+               </dict>
+               <key>source/user-guide.css</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>0</integer>
+                               <key>line</key>
+                               <integer>0</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>0</integer>
+               </dict>
+               <key>source/user-guide.md</key>
+               <dict>
+                       <key>caret</key>
+                       <dict>
+                               <key>column</key>
+                               <integer>0</integer>
+                               <key>line</key>
+                               <integer>74</integer>
+                       </dict>
+                       <key>firstVisibleColumn</key>
+                       <integer>0</integer>
+                       <key>firstVisibleLine</key>
+                       <integer>42</integer>
+               </dict>
+       </dict>
+       <key>openDocuments</key>
+       <array>
+               <string>source/resources/header.md</string>
+               <string>source/index.md</string>
+               <string>source/user-guide.md</string>
+               <string>source/user-guide.css</string>
+               <string>source/user-guide-details/motivation.mmd</string>
+               <string>source/user-guide-details/miscellaneous.mmd</string>
+               <string>source/user-guide-details/manipulation.mmd</string>
+               <string>source/user-guide-details/introspection.mmd</string>
+               <string>source/user-guide-details/search.mmd</string>
+               <string>source/user-guide-details/iteration.mmd</string>
+               <string>source/user-guide-details/deprecated.mmd</string>
+               <string>source/user-guide-details/dotty.mmd</string>
+               <string>source/user-guide-details/random-graphs.mmd</string>
+               <string>source/user-guide-details/algorithms.mmd</string>
+               <string>../../shared/shared-links.md</string>
+               <string>source/resources/ug-header.md</string>
+               <string>source/resources/shared-header.md</string>
+               <string>source/resources/footer.md</string>
+               <string>source/resources/navigation.md</string>
+       </array>
+       <key>showFileHierarchyDrawer</key>
+       <true/>
+       <key>windowFrame</key>
+       <string>{{611, 97}, {578, 778}}</string>
+</dict>
+</plist>