git.iko.soy/typeable/cabal2nix
on master help sign in
doc: slides for NixCon 2015
805f7a2Peter Simons
doc/.gitignore+2
@@ -2,10 +2,12 @@
2
2
3/*.aux
3/*.aux
4/*.csv
4/*.csv
5+/*.eps
5/*.html
6/*.html
6/*.json
7/*.json
7/*.log
8/*.log
8/*.out
9/*.out
9/*.pdf
10/*.pdf
11+/*~
10/.RData
12/.RData
11/.Rhistory
13/.Rhistory
doc/GNUmakefile+27−2
@@ -10,7 +10,7 @@ all:: 01-use-function-application-to-escape-override-hell.pdf
10all:: 02-guarantee-consistent-builds-and-obsolete-overridescope.pdf
10all:: 02-guarantee-consistent-builds-and-obsolete-overridescope.pdf
11all:: 03-map-cabal-files-to-nix-without-information-loss.md
11all:: 03-map-cabal-files-to-nix-without-information-loss.md
12all:: 04-set-up-a-sufficiently-powerful-build-farm.md
12all:: 04-set-up-a-sufficiently-powerful-build-farm.md
13−
13+all:: nixcon-2015-slides.pdf
14
14
15%.tex : %.md
15%.tex : %.md
16 pandoc -s $(PANDOC_FLAGS) -f markdown -t latex $< -o $@
16 pandoc -s $(PANDOC_FLAGS) -f markdown -t latex $< -o $@
@@ -24,11 +24,36 @@ all:: 04-set-up-a-sufficiently-powerful-build-farm.md
24 pdflatex $<; \
24 pdflatex $<; \
25 done
25 done
26
26
27+%.eps : %.dia
28+ dia -e $@ -t eps $<
29+
30+%.pdf : %.eps
31+ ps2pdf -dEPSCrop $< $@
32+
27hal8-folien.pdf : hal8-folien.md
33hal8-folien.pdf : hal8-folien.md
28 pandoc -t beamer $< -o $@
34 pandoc -t beamer $< -o $@
29
35
30nixos-meetup-3-slides.pdf : nixos-meetup-3-slides.md
36nixos-meetup-3-slides.pdf : nixos-meetup-3-slides.md
31 pandoc -t beamer $< -o $@
37 pandoc -t beamer $< -o $@
32
38
39+nixcon-2015-slides.pdf : nixcon-2015-slides.md pipeline-overview.pdf pipeline-details.pdf \
40+ hackage-version-boxplot.pdf
41+ pandoc -t beamer $< -o $@
42+
43+hackage-version-boxplot.pdf : analyze-hackage.r hackage.csv
44+ Rscript $<
45+
46+hackage.csv:
47+ ( cd ../hackage2nix/hackage; \
48+ echo package,version; \
49+ for n in *; do \
50+ test -d $$n || continue; \
51+ for v in $$n/*; do \
52+ echo $$n,$$(basename $$v); \
53+ done; \
54+ done \
55+ ) >$@
56+
33clean:
57clean:
34− @rm -f hal8.aux hal8.html hal8.log hal8.out hal8.pdf hal8.toc
58+ @rm -f *.aux *.html *.log *.out *.pdf *.toc
59+ @rm -f .Rhistory builds.csv hackage.csv
doc/analyze-hackage.rnew file+16
@@ -0,0 +1,16 @@
1+# cabal2nix/doc/analyze-hackage.r
2+
3+library(data.table)
4+
5+hackage <- within(as.data.table(read.csv("hackage.csv", header=T, stringsAsFactors=F)), {
6+ package <- ordered(package)
7+})
8+setkey(hackage, package)
9+
10+t <- hackage[,list(versions=length(version)),by=package][order(versions, decreasing=T)]
11+
12+pdf("hackage-version-boxplot.pdf",width=8, height=1.25)
13+opar <- par(mai=c(0.4,0.1,0.1,0.1))
14+boxplot(t$versions, outline=T, horizontal=TRUE, log="x", range=0)
15+par(opar)
16+dev.off()
doc/nixcon-2015-slides.mdnew file+357
@@ -0,0 +1,357 @@
1+% The Nixpkgs Haskell Infrastructure
2+% Peter Simons \<simons@cryp.to\>
3+% NixCon 2015
4+
5+-------------------------------------------------------------------------------
6+
7+# Players Involved in Haskell Packaging
8+
9+![](pipeline-overview.pdf)\
10+
11+
12+-------------------------------------------------------------------------------
13+
14+# The Packaging Process
15+
16+![](pipeline-details.pdf)\
17+
18+
19+-------------------------------------------------------------------------------
20+
21+# Hackage
22+
23+- 62,423 Cabal files (+41.6 per day)
24+
25+- 9,028 distinct packages (+4.9 per day)
26+
27+- $\mu=6.9, \sigma=\pm 10.3$ releases per package:
28+ ![](hackage-version-boxplot.pdf)
29+
30+- Top 10 most active packages: egison (149), git-annex (145), hakyll (145),
31+ purescript (141), yesod-core (140), warp (136), lens (129), wai-extra (119),
32+ yesod (116), and hlint (114).
33+
34+-------------------------------------------------------------------------------
35+
36+# Hackage: Structure of the Git Repository
37+
38+ 3d-graphics-examples
39+ 3dmodels
40+ 4Blocks
41+ [...]
42+ mtl
43+ +-- 1.0
44+ | +-- mtl.cabal
45+ | +-- mtl.json
46+ +-- [...]
47+ +-- 2.2.1
48+ +-- mtl.cabal
49+ +-- mtl.json
50+ [...]
51+ ztail
52+ Zwaluw
53+
54+-------------------------------------------------------------------------------
55+
56+# Hackage: `mtl/2.2.1/mtl.cabal`
57+
58+ name: mtl
59+ version: 2.2.1
60+ license: BSD3
61+ synopsis: Monad classes, using functional dependencies
62+ homepage: http://github.com/ekmett/mtl
63+ build-type: Simple
64+
65+ Library
66+ exposed-modules:
67+ Control.Monad.Cont
68+ [...]
69+ build-depends: base < 6, transformers == 0.4.*
70+ extensions:
71+ MultiParamTypeClasses
72+ FunctionalDependencies
73+ FlexibleInstances
74+
75+-------------------------------------------------------------------------------
76+
77+# Hackage: `mtl/2.2.1/mtl.json`
78+
79+ { "package-hashes" : { "MD5" : "96a2f12b...",
80+ "Skein512_512" : "73b5858d...",
81+ "SHA1" : "c244f8ec...",
82+ "SHA256" : "cae59d79...",
83+ "SHA512" : "5c31626b..."
84+ },
85+ "package-locations" : [
86+ "https://hackage.haskell.org/package/mtl-2.2.1/" \
87+ "mtl-2.2.1.tar.gz",
88+ "https://s3.amazonaws.com/hackage.fpcomplete.com/" \
89+ "package/mtl-2.2.1.tar.gz"
90+ ],
91+ "package-size" : 15391
92+ }
93+
94+-------------------------------------------------------------------------------
95+
96+# Hackage: Nix Build for mtl 2.2.1
97+
98+ { mkDerivation, base, stdenv, transformers }:
99+
100+ mkDerivation {
101+ pname = "mtl";
102+ version = "2.2.1";
103+ sha256 = "cae59d79f3a16f8e9f3c9adc1010c7c6...";
104+ libraryHaskellDepends = [ base transformers ];
105+ homepage = "http://github.com/ekmett/mtl";
106+ description = "Monad classes, using functional ...";
107+ license = stdenv.lib.licenses.bsd3;
108+ }
109+
110+-------------------------------------------------------------------------------
111+
112+# Hackage: Destructive Editing
113+
114+`MonadRandom/0.4/MonadRandom.cabal` contains a line:
115+
116+ x-revision: 2
117+
118+This translates to Nix:
119+
120+ revision = "2";
121+ editedCabalFile = "2e218afd5b29c868...";
122+
123+The build log will say:
124+
125+> Replace Cabal file with edited version from
126+> http://hackage.haskell.org/package/MonadRandom-0.4/revision/2.cabal.
127+
128+-------------------------------------------------------------------------------
129+
130+# Hackage: Conditional Values
131+
132+Values in Cabal files may depend on OS, architecture, compiler, and flags.
133+For example, hint 0.4.2.3 specifies:
134+
135+ Library
136+ if impl(ghc >= 6.8)
137+ build-depends: random, directory
138+ if impl(ghc >= 6.10)
139+ build-depends: base >= 4, base < 5,
140+ ghc-mtl == 1.2.1.*
141+ else
142+ build-depends: base >= 3, base < 4
143+ else
144+ build-depends: utf8-string < 0.3
145+ if !os(windows)
146+ build-depends: unix >= 2.2.0.0
147+
148+-------------------------------------------------------------------------------
149+
150+# Hackage: Cabal Flags
151+
152+Flags can be specified by the user or auto-configured by the build to fit the
153+environment. For example, pandoc 1.15.1.1 defines:
154+
155+ Flag https
156+ Description: Enable support for downloading over https.
157+
158+ Library
159+ Build-Depends: base >= 4.2 && <5,
160+ syb >= 0.1 && < 0.7,
161+ [...]
162+ ghc-prim >= 0.2
163+ if flag(https)
164+ Build-Depends: http-client >= 0.3.2 && < 0.5,
165+ http-client-tls >= 0.2 && < 0.3,
166+ http-types >= 0.8 && < 0.10
167+
168+-------------------------------------------------------------------------------
169+
170+# Stackage: Stable Hackage
171+
172+- 1,605 packages (18% of Hackage)
173+
174+- Build instructions published via Git specify parameters such as "don't run
175+ test suite", "don't run Haddock", etc.
176+
177+- Testing takes place on 64-bit Linux.
178+
179+- Nightly Snapshots contain the latest version of every package such that the
180+ package set is consistent.
181+
182+- LTS minor releases are created weekly and contain only point releases that
183+ don't change the API.
184+
185+- LTS major releases contain API-breaking changes and usually conincide with a
186+ compiler update.
187+
188+-------------------------------------------------------------------------------
189+
190+# cabal2nix & hackage2nix
191+
192+- Code lives at <https://github.com/NixOS/cabal2nix>:
193+ - `distribution-nixpkgs` library
194+ - `cabal2nix` executable
195+ - `hackage2nix` executable
196+
197+- [`update-nixpkgs.sh`](https://github.com/NixOS/cabal2nix/blob/master/hackage2nix/update-nixpkgs.sh)
198+ script runs automatically once per hour.
199+
200+- Changes go to `haskell-updates` branch in [peti's Nixpkgs fork on Github](https://github.com/peti/nixpkgs).
201+
202+- [`hydra.cryp.to`](http://hydra.cryp.to/jobset/nixpkgs/haskell-updates)
203+ continuously builds Stackage Nightly and the latest LTS Haskell package set.
204+
205+- If Hydra builds work sufficiently well, updates are manually merged into
206+ `master` branch of main repository.
207+
208+- [`generate-nixpkgs-haskell-package-list`](https://github.com/peti/package-list)
209+ utility manually publishes new state of Nixpkgs on Hackage.
210+
211+-------------------------------------------------------------------------------
212+
213+# Nixpkgs: `haskell-packages.nix`
214+
215+The package set is represented as a primitive recursive function:
216+
217+ ps = self: {
218+ "3d-graphics-examples" = callPackage ...;
219+ ...
220+ "mtl_2_1_3_1" = callPackage ...;
221+ "mtl" = callPackage ...;
222+ ...
223+ "ztail" = callPackage ...;
224+ };
225+
226+The Nixpkgs attribute set `haskellPackages` refers to the fixpoint of that
227+function which is computed by the expression:
228+
229+ let self = ps self;
230+ in # = ps (ps self) = ps (ps (self)) = ...
231+ self
232+
233+-------------------------------------------------------------------------------
234+
235+# Nixpkgs: haskell-packages.nix
236+
237+We can modify the package set using OO-style inheritance:
238+
239+ fix = f: let self = f self; in self;
240+ extend = rattrs: f: self: let super = rattrs self;
241+ in super // f self super;
242+
243+ ps = self: {
244+ foo = "foo"; bar = "bar";
245+ foobar = self.foo + self.bar;
246+ };
247+
248+ f = self: super: { foo = reverse super.foo; };
249+
250+- `(fix ps).foobar` $\equiv$ `"foobar"`
251+- `(fix (extend ps f)).foobar` $\equiv$ `"oofbar"`
252+- `(fix (extend (extend ps f) f)).foobar` $\equiv$ `"foobar"`
253+
254+-------------------------------------------------------------------------------
255+
256+# Nixpkgs: pkgs/development/haskell-modules/default.nix
257+
258+ { compilerConfig ? (self: super: {})
259+ , packageSetConfig ? (self: super: {})
260+ , overrides ? (self: super: {})
261+ }:
262+
263+ fix
264+ (extend
265+ (extend
266+ (extend
267+ (extend haskellPackages commonConfiguration)
268+ compilerConfig)
269+ packageSetConfig)
270+ overrides)
271+
272+-------------------------------------------------------------------------------
273+
274+# Nixpkgs: Multiple Views Of The Package Set
275+
276+- `haskell-packages.nix` represents "Stackage Nightly".
277+
278+- `configuration-common.nix` "extends" that to work around deficiencies in
279+ `hackage2nix`.
280+
281+- `configuration-ghc-x.y.nix` "extends" that with fixes relevant only for
282+ particular compiler versions: `haskell.packages.ghcXY`.
283+
284+- `configuration-lts-v.w.nix` "extends" those sets to choose default versions
285+ according to "LTS Haskell x.y": `haskell.packages.lts-x_y`.
286+
287+-------------------------------------------------------------------------------
288+
289+# Nixpkgs: `overrideCabal`
290+
291+Haskell derivations take the `mkDerivation` function as an argument:
292+
293+ { mkDerivation, ... }: mkDerivation {
294+ pname = "mtl";
295+ version = "2.2.1";
296+ ...
297+ }
298+
299+The `override` method changes the arguments passed to a derivation --- so we
300+can change the definition of `mkDerivation`:
301+
302+ overrideCabal = drv: f: drv.override (args: args // {
303+ mkDerivation = drv: args.mkDerivation (drv // f drv);
304+ });
305+
306+-------------------------------------------------------------------------------
307+
308+# Nixpkgs: `haskell.lib` Helper Functions
309+
310+ doHaddock = ...;
311+ dontHaddock = drv: overrideCabal drv (drv: {
312+ doHaddock = false;
313+ });
314+
315+ enableLibraryProfiling = ...;
316+ disableLibraryProfiling = drv: overrideCabal drv (drv: {
317+ enableLibraryProfiling = false;
318+ });
319+
320+ addBuildTool = drv: x: addBuildTools drv [x];
321+ addBuildTools = drv: xs: overrideCabal drv (drv: {
322+ buildTools = (drv.buildTools or []) ++ xs;
323+ });
324+
325+-------------------------------------------------------------------------------
326+
327+# Nixpkgs: Deep Overriding
328+
329+ fix = f: let x = f x // { __unfix__ = f; }; in x;
330+
331+ haskellPackages = self:
332+ let
333+ callPackage = callPackageWithScope self;
334+
335+ callPackageWithScope = scope: drv: args:
336+ (stdenv.lib.callPackageWith scope drv args) // {
337+ overrideScope = f:
338+ callPackageWithScope
339+ (fix (extend scope.__unfix__ f))
340+ drv args;
341+ };
342+ in
343+ { "git-annex" = callPackage ...; };
344+
345+-------------------------------------------------------------------------------
346+
347+# Other Resources
348+
349+- <http://hackage.haskell.org/>
350+
351+- <http://www.stackage.org/>
352+
353+- <http://nixos.org/nixpkgs/manual/#users-guide-to-the-haskell-infrastructure>
354+
355+- <http://lists.science.uu.nl/mailman/listinfo/nix-dev>
356+
357+- `#nixos` at `irc.freenode.org`
doc/pipeline-details.dianew file+1767
@@ -0,0 +1,1767 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<dia:diagram xmlns:dia="http://www.lysator.liu.se/~alla/dia/">
3+ <dia:diagramdata>
4+ <dia:attribute name="background">
5+ <dia:color val="#ffffff"/>
6+ </dia:attribute>
7+ <dia:attribute name="pagebreak">
8+ <dia:color val="#000099"/>
9+ </dia:attribute>
10+ <dia:attribute name="paper">
11+ <dia:composite type="paper">
12+ <dia:attribute name="name">
13+ <dia:string>#A4#</dia:string>
14+ </dia:attribute>
15+ <dia:attribute name="tmargin">
16+ <dia:real val="2.8199999332427979"/>
17+ </dia:attribute>
18+ <dia:attribute name="bmargin">
19+ <dia:real val="2.8222000598907471"/>
20+ </dia:attribute>
21+ <dia:attribute name="lmargin">
22+ <dia:real val="2.8222000598907471"/>
23+ </dia:attribute>
24+ <dia:attribute name="rmargin">
25+ <dia:real val="2.8222000598907471"/>
26+ </dia:attribute>
27+ <dia:attribute name="is_portrait">
28+ <dia:boolean val="true"/>
29+ </dia:attribute>
30+ <dia:attribute name="scaling">
31+ <dia:real val="0.50346225500106812"/>
32+ </dia:attribute>
33+ <dia:attribute name="fitto">
34+ <dia:boolean val="true"/>
35+ </dia:attribute>
36+ <dia:attribute name="fitwidth">
37+ <dia:int val="1"/>
38+ </dia:attribute>
39+ <dia:attribute name="fitheight">
40+ <dia:int val="1"/>
41+ </dia:attribute>
42+ </dia:composite>
43+ </dia:attribute>
44+ <dia:attribute name="grid">
45+ <dia:composite type="grid">
46+ <dia:attribute name="width_x">
47+ <dia:real val="1"/>
48+ </dia:attribute>
49+ <dia:attribute name="width_y">
50+ <dia:real val="1"/>
51+ </dia:attribute>
52+ <dia:attribute name="visible_x">
53+ <dia:int val="1"/>
54+ </dia:attribute>
55+ <dia:attribute name="visible_y">
56+ <dia:int val="1"/>
57+ </dia:attribute>
58+ <dia:composite type="color"/>
59+ </dia:composite>
60+ </dia:attribute>
61+ <dia:attribute name="color">
62+ <dia:color val="#d8e5e5"/>
63+ </dia:attribute>
64+ <dia:attribute name="guides">
65+ <dia:composite type="guides">
66+ <dia:attribute name="hguides"/>
67+ <dia:attribute name="vguides"/>
68+ </dia:composite>
69+ </dia:attribute>
70+ </dia:diagramdata>
71+ <dia:layer name="Background" visible="true" active="true">
72+ <dia:object type="Standard - Box" version="0" id="O0">
73+ <dia:attribute name="obj_pos">
74+ <dia:point val="-3,16.3"/>
75+ </dia:attribute>
76+ <dia:attribute name="obj_bb">
77+ <dia:rectangle val="-3.05,16.25;5.95,29.75"/>
78+ </dia:attribute>
79+ <dia:attribute name="elem_corner">
80+ <dia:point val="-3,16.3"/>
81+ </dia:attribute>
82+ <dia:attribute name="elem_width">
83+ <dia:real val="8.9000000000000021"/>
84+ </dia:attribute>
85+ <dia:attribute name="elem_height">
86+ <dia:real val="13.399999999999999"/>
87+ </dia:attribute>
88+ <dia:attribute name="border_width">
89+ <dia:real val="0.10000000149011612"/>
90+ </dia:attribute>
91+ <dia:attribute name="inner_color">
92+ <dia:color val="#bfbfbf"/>
93+ </dia:attribute>
94+ <dia:attribute name="show_background">
95+ <dia:boolean val="true"/>
96+ </dia:attribute>
97+ <dia:attribute name="line_style">
98+ <dia:enum val="4"/>
99+ </dia:attribute>
100+ </dia:object>
101+ <dia:object type="Standard - Box" version="0" id="O1">
102+ <dia:attribute name="obj_pos">
103+ <dia:point val="14.85,12.965"/>
104+ </dia:attribute>
105+ <dia:attribute name="obj_bb">
106+ <dia:rectangle val="14.8,12.915;27.45,29.65"/>
107+ </dia:attribute>
108+ <dia:attribute name="elem_corner">
109+ <dia:point val="14.85,12.965"/>
110+ </dia:attribute>
111+ <dia:attribute name="elem_width">
112+ <dia:real val="12.549999999999995"/>
113+ </dia:attribute>
114+ <dia:attribute name="elem_height">
115+ <dia:real val="16.634999999999987"/>
116+ </dia:attribute>
117+ <dia:attribute name="border_width">
118+ <dia:real val="0.10000000149011612"/>
119+ </dia:attribute>
120+ <dia:attribute name="inner_color">
121+ <dia:color val="#bfbfbf"/>
122+ </dia:attribute>
123+ <dia:attribute name="show_background">
124+ <dia:boolean val="true"/>
125+ </dia:attribute>
126+ <dia:attribute name="line_style">
127+ <dia:enum val="4"/>
128+ </dia:attribute>
129+ </dia:object>
130+ <dia:group>
131+ <dia:object type="Flowchart - Parallelogram" version="0" id="O2">
132+ <dia:attribute name="obj_pos">
133+ <dia:point val="17.2356,25.9784"/>
134+ </dia:attribute>
135+ <dia:attribute name="obj_bb">
136+ <dia:rectangle val="17.1856,25.9284;26.9072,28.0284"/>
137+ </dia:attribute>
138+ <dia:attribute name="elem_corner">
139+ <dia:point val="17.2356,25.9784"/>
140+ </dia:attribute>
141+ <dia:attribute name="elem_width">
142+ <dia:real val="9.6216166559453669"/>
143+ </dia:attribute>
144+ <dia:attribute name="elem_height">
145+ <dia:real val="2"/>
146+ </dia:attribute>
147+ <dia:attribute name="show_background">
148+ <dia:boolean val="true"/>
149+ </dia:attribute>
150+ <dia:attribute name="shear_angle">
151+ <dia:real val="70"/>
152+ </dia:attribute>
153+ <dia:attribute name="padding">
154+ <dia:real val="0.5"/>
155+ </dia:attribute>
156+ <dia:attribute name="text">
157+ <dia:composite type="text">
158+ <dia:attribute name="string">
159+ <dia:string>#configuration-lts-x.y.nix#</dia:string>
160+ </dia:attribute>
161+ <dia:attribute name="font">
162+ <dia:font family="sans" style="0" name="Helvetica"/>
163+ </dia:attribute>
164+ <dia:attribute name="height">
165+ <dia:real val="0.80000000000000004"/>
166+ </dia:attribute>
167+ <dia:attribute name="pos">
168+ <dia:point val="22.0464,27.1734"/>
169+ </dia:attribute>
170+ <dia:attribute name="color">
171+ <dia:color val="#000000"/>
172+ </dia:attribute>
173+ <dia:attribute name="alignment">
174+ <dia:enum val="1"/>
175+ </dia:attribute>
176+ </dia:composite>
177+ </dia:attribute>
178+ </dia:object>
179+ <dia:object type="Flowchart - Parallelogram" version="0" id="O3">
180+ <dia:attribute name="obj_pos">
181+ <dia:point val="16.4139,26.4093"/>
182+ </dia:attribute>
183+ <dia:attribute name="obj_bb">
184+ <dia:rectangle val="16.3639,26.3593;26.0855,28.4593"/>
185+ </dia:attribute>
186+ <dia:attribute name="elem_corner">
187+ <dia:point val="16.4139,26.4093"/>
188+ </dia:attribute>
189+ <dia:attribute name="elem_width">
190+ <dia:real val="9.6216166559453669"/>
191+ </dia:attribute>
192+ <dia:attribute name="elem_height">
193+ <dia:real val="2"/>
194+ </dia:attribute>
195+ <dia:attribute name="show_background">
196+ <dia:boolean val="true"/>
197+ </dia:attribute>
198+ <dia:attribute name="shear_angle">
199+ <dia:real val="70"/>
200+ </dia:attribute>
201+ <dia:attribute name="padding">
202+ <dia:real val="0.5"/>
203+ </dia:attribute>
204+ <dia:attribute name="text">
205+ <dia:composite type="text">
206+ <dia:attribute name="string">
207+ <dia:string>#configuration-lts-x.y.nix#</dia:string>
208+ </dia:attribute>
209+ <dia:attribute name="font">
210+ <dia:font family="sans" style="0" name="Helvetica"/>
211+ </dia:attribute>
212+ <dia:attribute name="height">
213+ <dia:real val="0.80000000000000004"/>
214+ </dia:attribute>
215+ <dia:attribute name="pos">
216+ <dia:point val="21.2247,27.6043"/>
217+ </dia:attribute>
218+ <dia:attribute name="color">
219+ <dia:color val="#000000"/>
220+ </dia:attribute>
221+ <dia:attribute name="alignment">
222+ <dia:enum val="1"/>
223+ </dia:attribute>
224+ </dia:composite>
225+ </dia:attribute>
226+ </dia:object>
227+ <dia:object type="Flowchart - Parallelogram" version="0" id="O4">
228+ <dia:attribute name="obj_pos">
229+ <dia:point val="15.7148,26.8153"/>
230+ </dia:attribute>
231+ <dia:attribute name="obj_bb">
232+ <dia:rectangle val="15.6648,26.7653;25.3864,28.8653"/>
233+ </dia:attribute>
234+ <dia:attribute name="elem_corner">
235+ <dia:point val="15.7148,26.8153"/>
236+ </dia:attribute>
237+ <dia:attribute name="elem_width">
238+ <dia:real val="9.6216166559453669"/>
239+ </dia:attribute>
240+ <dia:attribute name="elem_height">
241+ <dia:real val="2"/>
242+ </dia:attribute>
243+ <dia:attribute name="show_background">
244+ <dia:boolean val="true"/>
245+ </dia:attribute>
246+ <dia:attribute name="shear_angle">
247+ <dia:real val="70"/>
248+ </dia:attribute>
249+ <dia:attribute name="padding">
250+ <dia:real val="0.5"/>
251+ </dia:attribute>
252+ <dia:attribute name="text">
253+ <dia:composite type="text">
254+ <dia:attribute name="string">
255+ <dia:string>#configuration-lts-x.y.nix#</dia:string>
256+ </dia:attribute>
257+ <dia:attribute name="font">
258+ <dia:font family="sans" style="0" name="Helvetica"/>
259+ </dia:attribute>
260+ <dia:attribute name="height">
261+ <dia:real val="0.80000000000000004"/>
262+ </dia:attribute>
263+ <dia:attribute name="pos">
264+ <dia:point val="20.5256,28.0103"/>
265+ </dia:attribute>
266+ <dia:attribute name="color">
267+ <dia:color val="#000000"/>
268+ </dia:attribute>
269+ <dia:attribute name="alignment">
270+ <dia:enum val="1"/>
271+ </dia:attribute>
272+ </dia:composite>
273+ </dia:attribute>
274+ </dia:object>
275+ </dia:group>
276+ <dia:object type="Standard - Line" version="0" id="O5">
277+ <dia:attribute name="obj_pos">
278+ <dia:point val="21.5216,23.6895"/>
279+ </dia:attribute>
280+ <dia:attribute name="obj_bb">
281+ <dia:rectangle val="21.2119,23.6383;21.9353,26.5211"/>
282+ </dia:attribute>
283+ <dia:attribute name="conn_endpoints">
284+ <dia:point val="21.5216,23.6895"/>
285+ <dia:point val="21.5887,26.4093"/>
286+ </dia:attribute>
287+ <dia:attribute name="numcp">
288+ <dia:int val="1"/>
289+ </dia:attribute>
290+ <dia:attribute name="end_arrow">
291+ <dia:enum val="22"/>
292+ </dia:attribute>
293+ <dia:attribute name="end_arrow_length">
294+ <dia:real val="0.5"/>
295+ </dia:attribute>
296+ <dia:attribute name="end_arrow_width">
297+ <dia:real val="0.5"/>
298+ </dia:attribute>
299+ <dia:connections>
300+ <dia:connection handle="0" to="O7" connection="14"/>
301+ <dia:connection handle="1" to="O3" connection="2"/>
302+ </dia:connections>
303+ </dia:object>
304+ <dia:group>
305+ <dia:object type="Flowchart - Manual Input" version="1" id="O6">
306+ <dia:attribute name="obj_pos">
307+ <dia:point val="17.5436,21.2235"/>
308+ </dia:attribute>
309+ <dia:attribute name="obj_bb">
310+ <dia:rectangle val="17.4936,21.1687;26.3211,23.2735"/>
311+ </dia:attribute>
312+ <dia:attribute name="meta">
313+ <dia:composite type="dict"/>
314+ </dia:attribute>
315+ <dia:attribute name="elem_corner">
316+ <dia:point val="17.5436,21.2235"/>
317+ </dia:attribute>
318+ <dia:attribute name="elem_width">
319+ <dia:real val="8.7275000000000009"/>
320+ </dia:attribute>
321+ <dia:attribute name="elem_height">
322+ <dia:real val="2"/>
323+ </dia:attribute>
324+ <dia:attribute name="line_width">
325+ <dia:real val="0.10000000000000001"/>
326+ </dia:attribute>
327+ <dia:attribute name="line_colour">
328+ <dia:color val="#000000"/>
329+ </dia:attribute>
330+ <dia:attribute name="fill_colour">
331+ <dia:color val="#ffffff"/>
332+ </dia:attribute>
333+ <dia:attribute name="show_background">
334+ <dia:boolean val="true"/>
335+ </dia:attribute>
336+ <dia:attribute name="line_style">
337+ <dia:enum val="0"/>
338+ <dia:real val="1"/>
339+ </dia:attribute>
340+ <dia:attribute name="padding">
341+ <dia:real val="0.10000000000000001"/>
342+ </dia:attribute>
343+ <dia:attribute name="text">
344+ <dia:composite type="text">
345+ <dia:attribute name="string">
346+ <dia:string>#configuration-ghc-x.y.nix#</dia:string>
347+ </dia:attribute>
348+ <dia:attribute name="font">
349+ <dia:font family="sans" style="0" name="Helvetica"/>
350+ </dia:attribute>
351+ <dia:attribute name="height">
352+ <dia:real val="0.80000000000000004"/>
353+ </dia:attribute>
354+ <dia:attribute name="pos">
355+ <dia:point val="21.9074,22.8235"/>
356+ </dia:attribute>
357+ <dia:attribute name="color">
358+ <dia:color val="#000000"/>
359+ </dia:attribute>
360+ <dia:attribute name="alignment">
361+ <dia:enum val="1"/>
362+ </dia:attribute>
363+ </dia:composite>
364+ </dia:attribute>
365+ <dia:attribute name="flip_horizontal">
366+ <dia:boolean val="false"/>
367+ </dia:attribute>
368+ <dia:attribute name="flip_vertical">
369+ <dia:boolean val="false"/>
370+ </dia:attribute>
371+ <dia:attribute name="subscale">
372+ <dia:real val="1"/>
373+ </dia:attribute>
374+ </dia:object>
375+ <dia:object type="Flowchart - Manual Input" version="1" id="O7">
376+ <dia:attribute name="obj_pos">
377+ <dia:point val="17.1578,21.6895"/>
378+ </dia:attribute>
379+ <dia:attribute name="obj_bb">
380+ <dia:rectangle val="17.1078,21.6347;25.9353,23.7395"/>
381+ </dia:attribute>
382+ <dia:attribute name="meta">
383+ <dia:composite type="dict"/>
384+ </dia:attribute>
385+ <dia:attribute name="elem_corner">
386+ <dia:point val="17.1578,21.6895"/>
387+ </dia:attribute>
388+ <dia:attribute name="elem_width">
389+ <dia:real val="8.7275000000000009"/>
390+ </dia:attribute>
391+ <dia:attribute name="elem_height">
392+ <dia:real val="2"/>
393+ </dia:attribute>
394+ <dia:attribute name="line_width">
395+ <dia:real val="0.10000000000000001"/>
396+ </dia:attribute>
397+ <dia:attribute name="line_colour">
398+ <dia:color val="#000000"/>
399+ </dia:attribute>
400+ <dia:attribute name="fill_colour">
401+ <dia:color val="#ffffff"/>
402+ </dia:attribute>
403+ <dia:attribute name="show_background">
404+ <dia:boolean val="true"/>
405+ </dia:attribute>
406+ <dia:attribute name="line_style">
407+ <dia:enum val="0"/>
408+ <dia:real val="1"/>
409+ </dia:attribute>
410+ <dia:attribute name="padding">
411+ <dia:real val="0.10000000000000001"/>
412+ </dia:attribute>
413+ <dia:attribute name="text">
414+ <dia:composite type="text">
415+ <dia:attribute name="string">
416+ <dia:string>#configuration-ghc-x.y.nix#</dia:string>
417+ </dia:attribute>
418+ <dia:attribute name="font">
419+ <dia:font family="sans" style="0" name="Helvetica"/>
420+ </dia:attribute>
421+ <dia:attribute name="height">
422+ <dia:real val="0.80000000000000004"/>
423+ </dia:attribute>
424+ <dia:attribute name="pos">
425+ <dia:point val="21.5216,23.2895"/>
426+ </dia:attribute>
427+ <dia:attribute name="color">
428+ <dia:color val="#000000"/>
429+ </dia:attribute>
430+ <dia:attribute name="alignment">
431+ <dia:enum val="1"/>
432+ </dia:attribute>
433+ </dia:composite>
434+ </dia:attribute>
435+ <dia:attribute name="flip_horizontal">
436+ <dia:boolean val="false"/>
437+ </dia:attribute>
438+ <dia:attribute name="flip_vertical">
439+ <dia:boolean val="false"/>
440+ </dia:attribute>
441+ <dia:attribute name="subscale">
442+ <dia:real val="1"/>
443+ </dia:attribute>
444+ </dia:object>
445+ <dia:object type="Flowchart - Manual Input" version="1" id="O8">
446+ <dia:attribute name="obj_pos">
447+ <dia:point val="16.7028,22.1633"/>
448+ </dia:attribute>
449+ <dia:attribute name="obj_bb">
450+ <dia:rectangle val="16.6528,22.1085;25.4803,24.2133"/>
451+ </dia:attribute>
452+ <dia:attribute name="meta">
453+ <dia:composite type="dict"/>
454+ </dia:attribute>
455+ <dia:attribute name="elem_corner">
456+ <dia:point val="16.7028,22.1633"/>
457+ </dia:attribute>
458+ <dia:attribute name="elem_width">
459+ <dia:real val="8.7275000000000009"/>
460+ </dia:attribute>
461+ <dia:attribute name="elem_height">
462+ <dia:real val="2"/>
463+ </dia:attribute>
464+ <dia:attribute name="line_width">
465+ <dia:real val="0.10000000000000001"/>
466+ </dia:attribute>
467+ <dia:attribute name="line_colour">
468+ <dia:color val="#000000"/>
469+ </dia:attribute>
470+ <dia:attribute name="fill_colour">
471+ <dia:color val="#ffffff"/>
472+ </dia:attribute>
473+ <dia:attribute name="show_background">
474+ <dia:boolean val="true"/>
475+ </dia:attribute>
476+ <dia:attribute name="line_style">
477+ <dia:enum val="0"/>
478+ <dia:real val="1"/>
479+ </dia:attribute>
480+ <dia:attribute name="padding">
481+ <dia:real val="0.10000000000000001"/>
482+ </dia:attribute>
483+ <dia:attribute name="text">
484+ <dia:composite type="text">
485+ <dia:attribute name="string">
486+ <dia:string>#configuration-ghc-x.y.nix#</dia:string>
487+ </dia:attribute>
488+ <dia:attribute name="font">
489+ <dia:font family="sans" style="0" name="Helvetica"/>
490+ </dia:attribute>
491+ <dia:attribute name="height">
492+ <dia:real val="0.80000000000000004"/>
493+ </dia:attribute>
494+ <dia:attribute name="pos">
495+ <dia:point val="21.0666,23.7633"/>
496+ </dia:attribute>
497+ <dia:attribute name="color">
498+ <dia:color val="#000000"/>
499+ </dia:attribute>
500+ <dia:attribute name="alignment">
501+ <dia:enum val="1"/>
502+ </dia:attribute>
503+ </dia:composite>
504+ </dia:attribute>
505+ <dia:attribute name="flip_horizontal">
506+ <dia:boolean val="false"/>
507+ </dia:attribute>
508+ <dia:attribute name="flip_vertical">
509+ <dia:boolean val="false"/>
510+ </dia:attribute>
511+ <dia:attribute name="subscale">
512+ <dia:real val="1"/>
513+ </dia:attribute>
514+ </dia:object>
515+ </dia:group>
516+ <dia:object type="Standard - Box" version="0" id="O9">
517+ <dia:attribute name="obj_pos">
518+ <dia:point val="6.4325,18.1"/>
519+ </dia:attribute>
520+ <dia:attribute name="obj_bb">
521+ <dia:rectangle val="6.3825,18.05;14.4,29.7"/>
522+ </dia:attribute>
523+ <dia:attribute name="elem_corner">
524+ <dia:point val="6.4325,18.1"/>
525+ </dia:attribute>
526+ <dia:attribute name="elem_width">
527+ <dia:real val="7.9174999999999933"/>
528+ </dia:attribute>
529+ <dia:attribute name="elem_height">
530+ <dia:real val="11.550000000000015"/>
531+ </dia:attribute>
532+ <dia:attribute name="border_width">
533+ <dia:real val="0.10000000149011612"/>
534+ </dia:attribute>
535+ <dia:attribute name="inner_color">
536+ <dia:color val="#bfbfbf"/>
537+ </dia:attribute>
538+ <dia:attribute name="show_background">
539+ <dia:boolean val="true"/>
540+ </dia:attribute>
541+ <dia:attribute name="line_style">
542+ <dia:enum val="4"/>
543+ </dia:attribute>
544+ </dia:object>
545+ <dia:object type="Flowchart - Parallelogram" version="0" id="O10">
546+ <dia:attribute name="obj_pos">
547+ <dia:point val="-2.10183,21.785"/>
548+ </dia:attribute>
549+ <dia:attribute name="obj_bb">
550+ <dia:rectangle val="-2.15183,21.735;5.50479,23.835"/>
551+ </dia:attribute>
552+ <dia:attribute name="elem_corner">
553+ <dia:point val="-2.10183,21.785"/>
554+ </dia:attribute>
555+ <dia:attribute name="elem_width">
556+ <dia:real val="7.5566166559453665"/>
557+ </dia:attribute>
558+ <dia:attribute name="elem_height">
559+ <dia:real val="2"/>
560+ </dia:attribute>
561+ <dia:attribute name="show_background">
562+ <dia:boolean val="true"/>
563+ </dia:attribute>
564+ <dia:attribute name="shear_angle">
565+ <dia:real val="70"/>
566+ </dia:attribute>
567+ <dia:attribute name="padding">
568+ <dia:real val="0.5"/>
569+ </dia:attribute>
570+ <dia:attribute name="text">
571+ <dia:composite type="text">
572+ <dia:attribute name="string">
573+ <dia:string>#Stackage Nightly#</dia:string>
574+ </dia:attribute>
575+ <dia:attribute name="font">
576+ <dia:font family="sans" style="0" name="Helvetica"/>
577+ </dia:attribute>
578+ <dia:attribute name="height">
579+ <dia:real val="0.80000000000000004"/>
580+ </dia:attribute>
581+ <dia:attribute name="pos">
582+ <dia:point val="1.67648,22.98"/>
583+ </dia:attribute>
584+ <dia:attribute name="color">
585+ <dia:color val="#000000"/>
586+ </dia:attribute>
587+ <dia:attribute name="alignment">
588+ <dia:enum val="1"/>
589+ </dia:attribute>
590+ </dia:composite>
591+ </dia:attribute>
592+ </dia:object>
593+ <dia:object type="Flowchart - Parallelogram" version="0" id="O11">
594+ <dia:attribute name="obj_pos">
595+ <dia:point val="-1.97933,17.3272"/>
596+ </dia:attribute>
597+ <dia:attribute name="obj_bb">
598+ <dia:rectangle val="-2.02933,17.2772;5.38229,19.3772"/>
599+ </dia:attribute>
600+ <dia:attribute name="elem_corner">
601+ <dia:point val="-1.97933,17.3272"/>
602+ </dia:attribute>
603+ <dia:attribute name="elem_width">
604+ <dia:real val="7.3116166559453664"/>
605+ </dia:attribute>
606+ <dia:attribute name="elem_height">
607+ <dia:real val="2"/>
608+ </dia:attribute>
609+ <dia:attribute name="show_background">
610+ <dia:boolean val="true"/>
611+ </dia:attribute>
612+ <dia:attribute name="shear_angle">
613+ <dia:real val="70"/>
614+ </dia:attribute>
615+ <dia:attribute name="padding">
616+ <dia:real val="0.5"/>
617+ </dia:attribute>
618+ <dia:attribute name="text">
619+ <dia:composite type="text">
620+ <dia:attribute name="string">
621+ <dia:string>#all-cabal-hashes#</dia:string>
622+ </dia:attribute>
623+ <dia:attribute name="font">
624+ <dia:font family="sans" style="0" name="Helvetica"/>
625+ </dia:attribute>
626+ <dia:attribute name="height">
627+ <dia:real val="0.80000000000000004"/>
628+ </dia:attribute>
629+ <dia:attribute name="pos">
630+ <dia:point val="1.67648,18.5222"/>
631+ </dia:attribute>
632+ <dia:attribute name="color">
633+ <dia:color val="#000000"/>
634+ </dia:attribute>
635+ <dia:attribute name="alignment">
636+ <dia:enum val="1"/>
637+ </dia:attribute>
638+ </dia:composite>
639+ </dia:attribute>
640+ </dia:object>
641+ <dia:object type="Standard - Line" version="0" id="O12">
642+ <dia:attribute name="obj_pos">
643+ <dia:point val="1.687,14.8808"/>
644+ </dia:attribute>
645+ <dia:attribute name="obj_bb">
646+ <dia:rectangle val="1.31971,14.8306;2.04331,17.4024"/>
647+ </dia:attribute>
648+ <dia:attribute name="conn_endpoints">
649+ <dia:point val="1.687,14.8808"/>
650+ <dia:point val="1.67964,17.2906"/>
651+ </dia:attribute>
652+ <dia:attribute name="numcp">
653+ <dia:int val="1"/>
654+ </dia:attribute>
655+ <dia:attribute name="end_arrow">
656+ <dia:enum val="22"/>
657+ </dia:attribute>
658+ <dia:attribute name="end_arrow_length">
659+ <dia:real val="0.5"/>
660+ </dia:attribute>
661+ <dia:attribute name="end_arrow_width">
662+ <dia:real val="0.5"/>
663+ </dia:attribute>
664+ <dia:connections>
665+ <dia:connection handle="0" to="O27" connection="14"/>
666+ <dia:connection handle="1" to="O11" connection="16"/>
667+ </dia:connections>
668+ </dia:object>
669+ <dia:object type="Standard - Line" version="0" id="O13">
670+ <dia:attribute name="obj_pos">
671+ <dia:point val="1.67648,19.3769"/>
672+ </dia:attribute>
673+ <dia:attribute name="obj_bb">
674+ <dia:rectangle val="1.31467,19.3269;2.03828,21.8471"/>
675+ </dia:attribute>
676+ <dia:attribute name="conn_endpoints">
677+ <dia:point val="1.67648,19.3769"/>
678+ <dia:point val="1.67648,21.7353"/>
679+ </dia:attribute>
680+ <dia:attribute name="numcp">
681+ <dia:int val="1"/>
682+ </dia:attribute>
683+ <dia:attribute name="end_arrow">
684+ <dia:enum val="22"/>
685+ </dia:attribute>
686+ <dia:attribute name="end_arrow_length">
687+ <dia:real val="0.5"/>
688+ </dia:attribute>
689+ <dia:attribute name="end_arrow_width">
690+ <dia:real val="0.5"/>
691+ </dia:attribute>
692+ <dia:connections>
693+ <dia:connection handle="0" to="O11" connection="16"/>
694+ <dia:connection handle="1" to="O10" connection="16"/>
695+ </dia:connections>
696+ </dia:object>
697+ <dia:object type="Flowchart - Parallelogram" version="0" id="O14">
698+ <dia:attribute name="obj_pos">
699+ <dia:point val="17.1382,13.6837"/>
700+ </dia:attribute>
701+ <dia:attribute name="obj_bb">
702+ <dia:rectangle val="17.0882,13.6337;26.4473,15.6337"/>
703+ </dia:attribute>
704+ <dia:attribute name="elem_corner">
705+ <dia:point val="17.1382,13.6837"/>
706+ </dia:attribute>
707+ <dia:attribute name="elem_width">
708+ <dia:real val="9.2591166559453661"/>
709+ </dia:attribute>
710+ <dia:attribute name="elem_height">
711+ <dia:real val="1.9000000000000001"/>
712+ </dia:attribute>
713+ <dia:attribute name="show_background">
714+ <dia:boolean val="true"/>
715+ </dia:attribute>
716+ <dia:attribute name="shear_angle">
717+ <dia:real val="70"/>
718+ </dia:attribute>
719+ <dia:attribute name="padding">
720+ <dia:real val="0.5"/>
721+ </dia:attribute>
722+ <dia:attribute name="text">
723+ <dia:composite type="text">
724+ <dia:attribute name="string">
725+ <dia:string>#hackage-packages.nix#</dia:string>
726+ </dia:attribute>
727+ <dia:attribute name="font">
728+ <dia:font family="sans" style="0" name="Helvetica"/>
729+ </dia:attribute>
730+ <dia:attribute name="height">
731+ <dia:real val="0.80000000000000004"/>
732+ </dia:attribute>
733+ <dia:attribute name="pos">
734+ <dia:point val="21.7678,14.8287"/>
735+ </dia:attribute>
736+ <dia:attribute name="color">
737+ <dia:color val="#000000"/>
738+ </dia:attribute>
739+ <dia:attribute name="alignment">
740+ <dia:enum val="1"/>
741+ </dia:attribute>
742+ </dia:composite>
743+ </dia:attribute>
744+ </dia:object>
745+ <dia:object type="Standard - Line" version="0" id="O15">
746+ <dia:attribute name="obj_pos">
747+ <dia:point val="3.68637,17.3272"/>
748+ </dia:attribute>
749+ <dia:attribute name="obj_bb">
750+ <dia:rectangle val="3.61566,13.6496;7.30368,17.3979"/>
751+ </dia:attribute>
752+ <dia:attribute name="conn_endpoints">
753+ <dia:point val="3.68637,17.3272"/>
754+ <dia:point val="7.22528,13.7293"/>
755+ </dia:attribute>
756+ <dia:attribute name="numcp">
757+ <dia:int val="1"/>
758+ </dia:attribute>
759+ <dia:attribute name="end_arrow">
760+ <dia:enum val="22"/>
761+ </dia:attribute>
762+ <dia:attribute name="end_arrow_length">
763+ <dia:real val="0.5"/>
764+ </dia:attribute>
765+ <dia:attribute name="end_arrow_width">
766+ <dia:real val="0.5"/>
767+ </dia:attribute>
768+ <dia:connections>
769+ <dia:connection handle="0" to="O11" connection="3"/>
770+ <dia:connection handle="1" to="O16" connection="5"/>
771+ </dia:connections>
772+ </dia:object>
773+ <dia:object type="Flowchart - Box" version="0" id="O16">
774+ <dia:attribute name="obj_pos">
775+ <dia:point val="7.22528,13.2543"/>
776+ </dia:attribute>
777+ <dia:attribute name="obj_bb">
778+ <dia:rectangle val="7.17528,13.2043;13.55,15.2043"/>
779+ </dia:attribute>
780+ <dia:attribute name="elem_corner">
781+ <dia:point val="7.22528,13.2543"/>
782+ </dia:attribute>
783+ <dia:attribute name="elem_width">
784+ <dia:real val="6.2747199992549376"/>
785+ </dia:attribute>
786+ <dia:attribute name="elem_height">
787+ <dia:real val="1.9000000014901162"/>
788+ </dia:attribute>
789+ <dia:attribute name="border_width">
790+ <dia:real val="0.10000000149011612"/>
791+ </dia:attribute>
792+ <dia:attribute name="border_color">
793+ <dia:color val="#ff0000"/>
794+ </dia:attribute>
795+ <dia:attribute name="show_background">
796+ <dia:boolean val="true"/>
797+ </dia:attribute>
798+ <dia:attribute name="padding">
799+ <dia:real val="0.5"/>
800+ </dia:attribute>
801+ <dia:attribute name="text">
802+ <dia:composite type="text">
803+ <dia:attribute name="string">
804+ <dia:string>#hackage2nix#</dia:string>
805+ </dia:attribute>
806+ <dia:attribute name="font">
807+ <dia:font family="sans" style="0" name="Helvetica"/>
808+ </dia:attribute>
809+ <dia:attribute name="height">
810+ <dia:real val="0.80000000000000004"/>
811+ </dia:attribute>
812+ <dia:attribute name="pos">
813+ <dia:point val="10.3626,14.3993"/>
814+ </dia:attribute>
815+ <dia:attribute name="color">
816+ <dia:color val="#000000"/>
817+ </dia:attribute>
818+ <dia:attribute name="alignment">
819+ <dia:enum val="1"/>
820+ </dia:attribute>
821+ </dia:composite>
822+ </dia:attribute>
823+ </dia:object>
824+ <dia:object type="Standard - Line" version="0" id="O17">
825+ <dia:attribute name="obj_pos">
826+ <dia:point val="3.74762,21.785"/>
827+ </dia:attribute>
828+ <dia:attribute name="obj_bb">
829+ <dia:rectangle val="3.68011,15.0553;7.29507,21.8526"/>
830+ </dia:attribute>
831+ <dia:attribute name="conn_endpoints">
832+ <dia:point val="3.74762,21.785"/>
833+ <dia:point val="7.22528,15.1543"/>
834+ </dia:attribute>
835+ <dia:attribute name="numcp">
836+ <dia:int val="1"/>
837+ </dia:attribute>
838+ <dia:attribute name="end_arrow">
839+ <dia:enum val="22"/>
840+ </dia:attribute>
841+ <dia:attribute name="end_arrow_length">
842+ <dia:real val="0.5"/>
843+ </dia:attribute>
844+ <dia:attribute name="end_arrow_width">
845+ <dia:real val="0.5"/>
846+ </dia:attribute>
847+ <dia:connections>
848+ <dia:connection handle="0" to="O10" connection="3"/>
849+ <dia:connection handle="1" to="O16" connection="11"/>
850+ </dia:connections>
851+ </dia:object>
852+ <dia:object type="Flowchart - Manual Input" version="1" id="O18">
853+ <dia:attribute name="obj_pos">
854+ <dia:point val="17.0732,17.4036"/>
855+ </dia:attribute>
856+ <dia:attribute name="obj_bb">
857+ <dia:rectangle val="17.0232,17.3488;25.8507,19.4536"/>
858+ </dia:attribute>
859+ <dia:attribute name="meta">
860+ <dia:composite type="dict"/>
861+ </dia:attribute>
862+ <dia:attribute name="elem_corner">
863+ <dia:point val="17.0732,17.4036"/>
864+ </dia:attribute>
865+ <dia:attribute name="elem_width">
866+ <dia:real val="8.7275000000000009"/>
867+ </dia:attribute>
868+ <dia:attribute name="elem_height">
869+ <dia:real val="2"/>
870+ </dia:attribute>
871+ <dia:attribute name="line_width">
872+ <dia:real val="0.10000000000000001"/>
873+ </dia:attribute>
874+ <dia:attribute name="line_colour">
875+ <dia:color val="#000000"/>
876+ </dia:attribute>
877+ <dia:attribute name="fill_colour">
878+ <dia:color val="#ffffff"/>
879+ </dia:attribute>
880+ <dia:attribute name="show_background">
881+ <dia:boolean val="true"/>
882+ </dia:attribute>
883+ <dia:attribute name="line_style">
884+ <dia:enum val="0"/>
885+ <dia:real val="1"/>
886+ </dia:attribute>
887+ <dia:attribute name="padding">
888+ <dia:real val="0.10000000000000001"/>
889+ </dia:attribute>
890+ <dia:attribute name="text">
891+ <dia:composite type="text">
892+ <dia:attribute name="string">
893+ <dia:string>#configuration-common.nix#</dia:string>
894+ </dia:attribute>
895+ <dia:attribute name="font">
896+ <dia:font family="sans" style="0" name="Helvetica"/>
897+ </dia:attribute>
898+ <dia:attribute name="height">
899+ <dia:real val="0.80000000000000004"/>
900+ </dia:attribute>
901+ <dia:attribute name="pos">
902+ <dia:point val="21.437,19.0036"/>
903+ </dia:attribute>
904+ <dia:attribute name="color">
905+ <dia:color val="#000000"/>
906+ </dia:attribute>
907+ <dia:attribute name="alignment">
908+ <dia:enum val="1"/>
909+ </dia:attribute>
910+ </dia:composite>
911+ </dia:attribute>
912+ <dia:attribute name="flip_horizontal">
913+ <dia:boolean val="false"/>
914+ </dia:attribute>
915+ <dia:attribute name="flip_vertical">
916+ <dia:boolean val="false"/>
917+ </dia:attribute>
918+ <dia:attribute name="subscale">
919+ <dia:real val="1"/>
920+ </dia:attribute>
921+ </dia:object>
922+ <dia:object type="Standard - Line" version="0" id="O19">
923+ <dia:attribute name="obj_pos">
924+ <dia:point val="13.5,14.2043"/>
925+ </dia:attribute>
926+ <dia:attribute name="obj_bb">
927+ <dia:rectangle val="13.4449,14.1492;17.5951,14.9279"/>
928+ </dia:attribute>
929+ <dia:attribute name="conn_endpoints">
930+ <dia:point val="13.5,14.2043"/>
931+ <dia:point val="17.484,14.6337"/>
932+ </dia:attribute>
933+ <dia:attribute name="numcp">
934+ <dia:int val="1"/>
935+ </dia:attribute>
936+ <dia:attribute name="end_arrow">
937+ <dia:enum val="22"/>
938+ </dia:attribute>
939+ <dia:attribute name="end_arrow_length">
940+ <dia:real val="0.5"/>
941+ </dia:attribute>
942+ <dia:attribute name="end_arrow_width">
943+ <dia:real val="0.5"/>
944+ </dia:attribute>
945+ <dia:connections>
946+ <dia:connection handle="0" to="O16" connection="8"/>
947+ <dia:connection handle="1" to="O14" connection="7"/>
948+ </dia:connections>
949+ </dia:object>
950+ <dia:object type="Standard - Line" version="0" id="O20">
951+ <dia:attribute name="obj_pos">
952+ <dia:point val="13.5,15.1543"/>
953+ </dia:attribute>
954+ <dia:attribute name="obj_bb">
955+ <dia:rectangle val="13.437,15.0913;17.2977,26.5157"/>
956+ </dia:attribute>
957+ <dia:attribute name="conn_endpoints">
958+ <dia:point val="13.5,15.1543"/>
959+ <dia:point val="17.1418,26.4093"/>
960+ </dia:attribute>
961+ <dia:attribute name="numcp">
962+ <dia:int val="1"/>
963+ </dia:attribute>
964+ <dia:attribute name="end_arrow">
965+ <dia:enum val="22"/>
966+ </dia:attribute>
967+ <dia:attribute name="end_arrow_length">
968+ <dia:real val="0.5"/>
969+ </dia:attribute>
970+ <dia:attribute name="end_arrow_width">
971+ <dia:real val="0.5"/>
972+ </dia:attribute>
973+ <dia:connections>
974+ <dia:connection handle="0" to="O16" connection="15"/>
975+ <dia:connection handle="1" to="O3" connection="0"/>
976+ </dia:connections>
977+ </dia:object>
978+ <dia:object type="Standard - Line" version="0" id="O21">
979+ <dia:attribute name="obj_pos">
980+ <dia:point val="21.422,15.5837"/>
981+ </dia:attribute>
982+ <dia:attribute name="obj_bb">
983+ <dia:rectangle val="21.071,15.5334;21.7946,17.9154"/>
984+ </dia:attribute>
985+ <dia:attribute name="conn_endpoints">
986+ <dia:point val="21.422,15.5837"/>
987+ <dia:point val="21.437,17.8036"/>
988+ </dia:attribute>
989+ <dia:attribute name="numcp">
990+ <dia:int val="1"/>
991+ </dia:attribute>
992+ <dia:attribute name="end_arrow">
993+ <dia:enum val="22"/>
994+ </dia:attribute>
995+ <dia:attribute name="end_arrow_length">
996+ <dia:real val="0.5"/>
997+ </dia:attribute>
998+ <dia:attribute name="end_arrow_width">
999+ <dia:real val="0.5"/>
1000+ </dia:attribute>
1001+ <dia:connections>
1002+ <dia:connection handle="0" to="O14" connection="13"/>
1003+ <dia:connection handle="1" to="O18" connection="2"/>
1004+ </dia:connections>
1005+ </dia:object>
1006+ <dia:object type="Standard - Line" version="0" id="O22">
1007+ <dia:attribute name="obj_pos">
1008+ <dia:point val="21.461,19.4533"/>
1009+ </dia:attribute>
1010+ <dia:attribute name="obj_bb">
1011+ <dia:rectangle val="21.1458,19.4022;21.8692,22.2013"/>
1012+ </dia:attribute>
1013+ <dia:attribute name="conn_endpoints">
1014+ <dia:point val="21.461,19.4533"/>
1015+ <dia:point val="21.5216,22.0895"/>
1016+ </dia:attribute>
1017+ <dia:attribute name="numcp">
1018+ <dia:int val="1"/>
1019+ </dia:attribute>
1020+ <dia:attribute name="end_arrow">
1021+ <dia:enum val="22"/>
1022+ </dia:attribute>
1023+ <dia:attribute name="end_arrow_length">
1024+ <dia:real val="0.5"/>
1025+ </dia:attribute>
1026+ <dia:attribute name="end_arrow_width">
1027+ <dia:real val="0.5"/>
1028+ </dia:attribute>
1029+ <dia:connections>
1030+ <dia:connection handle="0" to="O18" connection="16"/>
1031+ <dia:connection handle="1" to="O7" connection="2"/>
1032+ </dia:connections>
1033+ </dia:object>
1034+ <dia:object type="Flowchart - Manual Input" version="1" id="O23">
1035+ <dia:attribute name="obj_pos">
1036+ <dia:point val="6.9465,22.8184"/>
1037+ </dia:attribute>
1038+ <dia:attribute name="obj_bb">
1039+ <dia:rectangle val="6.8965,22.7619;13.6137,24.8684"/>
1040+ </dia:attribute>
1041+ <dia:attribute name="meta">
1042+ <dia:composite type="dict"/>
1043+ </dia:attribute>
1044+ <dia:attribute name="elem_corner">
1045+ <dia:point val="6.9465,22.8184"/>
1046+ </dia:attribute>
1047+ <dia:attribute name="elem_width">
1048+ <dia:real val="6.6171688018521273"/>
1049+ </dia:attribute>
1050+ <dia:attribute name="elem_height">
1051+ <dia:real val="2"/>
1052+ </dia:attribute>
1053+ <dia:attribute name="line_width">
1054+ <dia:real val="0.10000000000000001"/>
1055+ </dia:attribute>
1056+ <dia:attribute name="line_colour">
1057+ <dia:color val="#000000"/>
1058+ </dia:attribute>
1059+ <dia:attribute name="fill_colour">
1060+ <dia:color val="#ffffff"/>
1061+ </dia:attribute>
1062+ <dia:attribute name="show_background">
1063+ <dia:boolean val="true"/>
1064+ </dia:attribute>
1065+ <dia:attribute name="line_style">
1066+ <dia:enum val="0"/>
1067+ <dia:real val="1"/>
1068+ </dia:attribute>
1069+ <dia:attribute name="padding">
1070+ <dia:real val="0.10000000000000001"/>
1071+ </dia:attribute>
1072+ <dia:attribute name="text">
1073+ <dia:composite type="text">
1074+ <dia:attribute name="string">
1075+ <dia:string>#packageOverrides#</dia:string>
1076+ </dia:attribute>
1077+ <dia:attribute name="font">
1078+ <dia:font family="sans" style="0" name="Helvetica"/>
1079+ </dia:attribute>
1080+ <dia:attribute name="height">
1081+ <dia:real val="0.80000000000000004"/>
1082+ </dia:attribute>
1083+ <dia:attribute name="pos">
1084+ <dia:point val="10.2551,24.4184"/>
1085+ </dia:attribute>
1086+ <dia:attribute name="color">
1087+ <dia:color val="#000000"/>
1088+ </dia:attribute>
1089+ <dia:attribute name="alignment">
1090+ <dia:enum val="1"/>
1091+ </dia:attribute>
1092+ </dia:composite>
1093+ </dia:attribute>
1094+ <dia:attribute name="flip_horizontal">
1095+ <dia:boolean val="false"/>
1096+ </dia:attribute>
1097+ <dia:attribute name="flip_vertical">
1098+ <dia:boolean val="false"/>
1099+ </dia:attribute>
1100+ <dia:attribute name="subscale">
1101+ <dia:real val="1"/>
1102+ </dia:attribute>
1103+ </dia:object>
1104+ <dia:object type="Standard - Line" version="0" id="O24">
1105+ <dia:attribute name="obj_pos">
1106+ <dia:point val="21.4301,17.3918"/>
1107+ </dia:attribute>
1108+ <dia:attribute name="obj_bb">
1109+ <dia:rectangle val="21.3798,17.3415;21.4829,17.8048"/>
1110+ </dia:attribute>
1111+ <dia:attribute name="conn_endpoints">
1112+ <dia:point val="21.4301,17.3918"/>
1113+ <dia:point val="21.4326,17.7544"/>
1114+ </dia:attribute>
1115+ <dia:attribute name="numcp">
1116+ <dia:int val="1"/>
1117+ </dia:attribute>
1118+ <dia:connections>
1119+ <dia:connection handle="1" to="O18" connection="16"/>
1120+ </dia:connections>
1121+ </dia:object>
1122+ <dia:object type="Standard - Line" version="0" id="O25">
1123+ <dia:attribute name="obj_pos">
1124+ <dia:point val="10.2551,24.8184"/>
1125+ </dia:attribute>
1126+ <dia:attribute name="obj_bb">
1127+ <dia:rectangle val="9.92777,24.7671;10.6512,26.9271"/>
1128+ </dia:attribute>
1129+ <dia:attribute name="conn_endpoints">
1130+ <dia:point val="10.2551,24.8184"/>
1131+ <dia:point val="10.3046,26.8153"/>
1132+ </dia:attribute>
1133+ <dia:attribute name="numcp">
1134+ <dia:int val="1"/>
1135+ </dia:attribute>
1136+ <dia:attribute name="end_arrow">
1137+ <dia:enum val="22"/>
1138+ </dia:attribute>
1139+ <dia:attribute name="end_arrow_length">
1140+ <dia:real val="0.5"/>
1141+ </dia:attribute>
1142+ <dia:attribute name="end_arrow_width">
1143+ <dia:real val="0.5"/>
1144+ </dia:attribute>
1145+ <dia:connections>
1146+ <dia:connection handle="0" to="O23" connection="14"/>
1147+ <dia:connection handle="1" to="O26" connection="2"/>
1148+ </dia:connections>
1149+ </dia:object>
1150+ <dia:object type="Flowchart - Terminal" version="1" id="O26">
1151+ <dia:attribute name="obj_pos">
1152+ <dia:point val="7.42276,26.8153"/>
1153+ </dia:attribute>
1154+ <dia:attribute name="obj_bb">
1155+ <dia:rectangle val="7.37276,26.7653;13.2365,28.8653"/>
1156+ </dia:attribute>
1157+ <dia:attribute name="meta">
1158+ <dia:composite type="dict"/>
1159+ </dia:attribute>
1160+ <dia:attribute name="elem_corner">
1161+ <dia:point val="7.42276,26.8153"/>
1162+ </dia:attribute>
1163+ <dia:attribute name="elem_width">
1164+ <dia:real val="5.7637499999999999"/>
1165+ </dia:attribute>
1166+ <dia:attribute name="elem_height">
1167+ <dia:real val="2"/>
1168+ </dia:attribute>
1169+ <dia:attribute name="line_width">
1170+ <dia:real val="0.10000000000000001"/>
1171+ </dia:attribute>
1172+ <dia:attribute name="line_colour">
1173+ <dia:color val="#000000"/>
1174+ </dia:attribute>
1175+ <dia:attribute name="fill_colour">
1176+ <dia:color val="#ffffff"/>
1177+ </dia:attribute>
1178+ <dia:attribute name="show_background">
1179+ <dia:boolean val="true"/>
1180+ </dia:attribute>
1181+ <dia:attribute name="line_style">
1182+ <dia:enum val="0"/>
1183+ <dia:real val="1"/>
1184+ </dia:attribute>
1185+ <dia:attribute name="padding">
1186+ <dia:real val="0.10000000000000001"/>
1187+ </dia:attribute>
1188+ <dia:attribute name="text">
1189+ <dia:composite type="text">
1190+ <dia:attribute name="string">
1191+ <dia:string>#Installation#</dia:string>
1192+ </dia:attribute>
1193+ <dia:attribute name="font">
1194+ <dia:font family="sans" style="0" name="Helvetica"/>
1195+ </dia:attribute>
1196+ <dia:attribute name="height">
1197+ <dia:real val="0.80000000000000004"/>
1198+ </dia:attribute>
1199+ <dia:attribute name="pos">
1200+ <dia:point val="10.3046,28.0153"/>
1201+ </dia:attribute>
1202+ <dia:attribute name="color">
1203+ <dia:color val="#000000"/>
1204+ </dia:attribute>
1205+ <dia:attribute name="alignment">
1206+ <dia:enum val="1"/>
1207+ </dia:attribute>
1208+ </dia:composite>
1209+ </dia:attribute>
1210+ <dia:attribute name="flip_horizontal">
1211+ <dia:boolean val="false"/>
1212+ </dia:attribute>
1213+ <dia:attribute name="flip_vertical">
1214+ <dia:boolean val="false"/>
1215+ </dia:attribute>
1216+ <dia:attribute name="subscale">
1217+ <dia:real val="1"/>
1218+ </dia:attribute>
1219+ </dia:object>
1220+ <dia:object type="Flowchart - Terminal" version="1" id="O27">
1221+ <dia:attribute name="obj_pos">
1222+ <dia:point val="-0.624878,12.8808"/>
1223+ </dia:attribute>
1224+ <dia:attribute name="obj_bb">
1225+ <dia:rectangle val="-0.674878,12.8308;4.04887,14.9308"/>
1226+ </dia:attribute>
1227+ <dia:attribute name="meta">
1228+ <dia:composite type="dict"/>
1229+ </dia:attribute>
1230+ <dia:attribute name="elem_corner">
1231+ <dia:point val="-0.624878,12.8808"/>
1232+ </dia:attribute>
1233+ <dia:attribute name="elem_width">
1234+ <dia:real val="4.6237500000000002"/>
1235+ </dia:attribute>
1236+ <dia:attribute name="elem_height">
1237+ <dia:real val="2"/>
1238+ </dia:attribute>
1239+ <dia:attribute name="line_width">
1240+ <dia:real val="0.10000000000000001"/>
1241+ </dia:attribute>
1242+ <dia:attribute name="line_colour">
1243+ <dia:color val="#000000"/>
1244+ </dia:attribute>
1245+ <dia:attribute name="fill_colour">
1246+ <dia:color val="#ffffff"/>
1247+ </dia:attribute>
1248+ <dia:attribute name="show_background">
1249+ <dia:boolean val="true"/>
1250+ </dia:attribute>
1251+ <dia:attribute name="line_style">
1252+ <dia:enum val="0"/>
1253+ <dia:real val="1"/>
1254+ </dia:attribute>
1255+ <dia:attribute name="padding">
1256+ <dia:real val="0.10000000000000001"/>
1257+ </dia:attribute>
1258+ <dia:attribute name="text">
1259+ <dia:composite type="text">
1260+ <dia:attribute name="string">
1261+ <dia:string>#Hackage#</dia:string>
1262+ </dia:attribute>
1263+ <dia:attribute name="font">
1264+ <dia:font family="sans" style="0" name="Helvetica"/>
1265+ </dia:attribute>
1266+ <dia:attribute name="height">
1267+ <dia:real val="0.80000000000000004"/>
1268+ </dia:attribute>
1269+ <dia:attribute name="pos">
1270+ <dia:point val="1.687,14.0808"/>
1271+ </dia:attribute>
1272+ <dia:attribute name="color">
1273+ <dia:color val="#000000"/>
1274+ </dia:attribute>
1275+ <dia:attribute name="alignment">
1276+ <dia:enum val="1"/>
1277+ </dia:attribute>
1278+ </dia:composite>
1279+ </dia:attribute>
1280+ <dia:attribute name="flip_horizontal">
1281+ <dia:boolean val="false"/>
1282+ </dia:attribute>
1283+ <dia:attribute name="flip_vertical">
1284+ <dia:boolean val="false"/>
1285+ </dia:attribute>
1286+ <dia:attribute name="subscale">
1287+ <dia:real val="1"/>
1288+ </dia:attribute>
1289+ </dia:object>
1290+ <dia:object type="Standard - Line" version="0" id="O28">
1291+ <dia:attribute name="obj_pos">
1292+ <dia:point val="16.0788,27.8153"/>
1293+ </dia:attribute>
1294+ <dia:attribute name="obj_bb">
1295+ <dia:rectangle val="11.8186,24.7486;16.1486,27.8851"/>
1296+ </dia:attribute>
1297+ <dia:attribute name="conn_endpoints">
1298+ <dia:point val="16.0788,27.8153"/>
1299+ <dia:point val="11.9094,24.8184"/>
1300+ </dia:attribute>
1301+ <dia:attribute name="numcp">
1302+ <dia:int val="1"/>
1303+ </dia:attribute>
1304+ <dia:attribute name="end_arrow">
1305+ <dia:enum val="22"/>
1306+ </dia:attribute>
1307+ <dia:attribute name="end_arrow_length">
1308+ <dia:real val="0.5"/>
1309+ </dia:attribute>
1310+ <dia:attribute name="end_arrow_width">
1311+ <dia:real val="0.5"/>
1312+ </dia:attribute>
1313+ <dia:connections>
1314+ <dia:connection handle="0" to="O4" connection="7"/>
1315+ <dia:connection handle="1" to="O23" connection="15"/>
1316+ </dia:connections>
1317+ </dia:object>
1318+ <dia:object type="Standard - Arc" version="0" id="O29">
1319+ <dia:attribute name="obj_pos">
1320+ <dia:point val="17.1578,22.4895"/>
1321+ </dia:attribute>
1322+ <dia:attribute name="obj_bb">
1323+ <dia:rectangle val="11.6677,20.6742;17.2126,23.0731"/>
1324+ </dia:attribute>
1325+ <dia:attribute name="conn_endpoints">
1326+ <dia:point val="17.1578,22.4895"/>
1327+ <dia:point val="11.9094,23.0184"/>
1328+ </dia:attribute>
1329+ <dia:attribute name="curve_distance">
1330+ <dia:real val="2.0262286951573065"/>
1331+ </dia:attribute>
1332+ <dia:attribute name="line_width">
1333+ <dia:real val="0.10000000149011612"/>
1334+ </dia:attribute>
1335+ <dia:attribute name="end_arrow">
1336+ <dia:enum val="22"/>
1337+ </dia:attribute>
1338+ <dia:attribute name="end_arrow_length">
1339+ <dia:real val="0.5"/>
1340+ </dia:attribute>
1341+ <dia:attribute name="end_arrow_width">
1342+ <dia:real val="0.5"/>
1343+ </dia:attribute>
1344+ <dia:connections>
1345+ <dia:connection handle="0" to="O7" connection="0"/>
1346+ <dia:connection handle="1" to="O23" connection="3"/>
1347+ </dia:connections>
1348+ </dia:object>
1349+ <dia:object type="Standard - Text" version="1" id="O30">
1350+ <dia:attribute name="obj_pos">
1351+ <dia:point val="-0.02875,30.75"/>
1352+ </dia:attribute>
1353+ <dia:attribute name="obj_bb">
1354+ <dia:rectangle val="-0.02875,30.155;2.92875,30.9"/>
1355+ </dia:attribute>
1356+ <dia:attribute name="text">
1357+ <dia:composite type="text">
1358+ <dia:attribute name="string">
1359+ <dia:string>#Stackage#</dia:string>
1360+ </dia:attribute>
1361+ <dia:attribute name="font">
1362+ <dia:font family="sans" style="0" name="Helvetica"/>
1363+ </dia:attribute>
1364+ <dia:attribute name="height">
1365+ <dia:real val="0.80000000000000004"/>
1366+ </dia:attribute>
1367+ <dia:attribute name="pos">
1368+ <dia:point val="-0.02875,30.75"/>
1369+ </dia:attribute>
1370+ <dia:attribute name="color">
1371+ <dia:color val="#000000"/>
1372+ </dia:attribute>
1373+ <dia:attribute name="alignment">
1374+ <dia:enum val="0"/>
1375+ </dia:attribute>
1376+ </dia:composite>
1377+ </dia:attribute>
1378+ <dia:attribute name="valign">
1379+ <dia:enum val="3"/>
1380+ </dia:attribute>
1381+ </dia:object>
1382+ <dia:object type="Standard - Text" version="1" id="O31">
1383+ <dia:attribute name="obj_pos">
1384+ <dia:point val="9.6625,30.75"/>
1385+ </dia:attribute>
1386+ <dia:attribute name="obj_bb">
1387+ <dia:rectangle val="9.6625,30.155;11.12,30.9"/>
1388+ </dia:attribute>
1389+ <dia:attribute name="text">
1390+ <dia:composite type="text">
1391+ <dia:attribute name="string">
1392+ <dia:string>#User#</dia:string>
1393+ </dia:attribute>
1394+ <dia:attribute name="font">
1395+ <dia:font family="sans" style="0" name="Helvetica"/>
1396+ </dia:attribute>
1397+ <dia:attribute name="height">
1398+ <dia:real val="0.80000000000000004"/>
1399+ </dia:attribute>
1400+ <dia:attribute name="pos">
1401+ <dia:point val="9.6625,30.75"/>
1402+ </dia:attribute>
1403+ <dia:attribute name="color">
1404+ <dia:color val="#000000"/>
1405+ </dia:attribute>
1406+ <dia:attribute name="alignment">
1407+ <dia:enum val="0"/>
1408+ </dia:attribute>
1409+ </dia:composite>
1410+ </dia:attribute>
1411+ <dia:attribute name="valign">
1412+ <dia:enum val="3"/>
1413+ </dia:attribute>
1414+ </dia:object>
1415+ <dia:object type="Standard - Text" version="1" id="O32">
1416+ <dia:attribute name="obj_pos">
1417+ <dia:point val="19.905,30.75"/>
1418+ </dia:attribute>
1419+ <dia:attribute name="obj_bb">
1420+ <dia:rectangle val="19.905,30.155;22.46,30.9"/>
1421+ </dia:attribute>
1422+ <dia:attribute name="text">
1423+ <dia:composite type="text">
1424+ <dia:attribute name="string">
1425+ <dia:string>#Nixpkgs#</dia:string>
1426+ </dia:attribute>
1427+ <dia:attribute name="font">
1428+ <dia:font family="sans" style="0" name="Helvetica"/>
1429+ </dia:attribute>
1430+ <dia:attribute name="height">
1431+ <dia:real val="0.80000000000000004"/>
1432+ </dia:attribute>
1433+ <dia:attribute name="pos">
1434+ <dia:point val="19.905,30.75"/>
1435+ </dia:attribute>
1436+ <dia:attribute name="color">
1437+ <dia:color val="#000000"/>
1438+ </dia:attribute>
1439+ <dia:attribute name="alignment">
1440+ <dia:enum val="0"/>
1441+ </dia:attribute>
1442+ </dia:composite>
1443+ </dia:attribute>
1444+ <dia:attribute name="valign">
1445+ <dia:enum val="3"/>
1446+ </dia:attribute>
1447+ </dia:object>
1448+ <dia:object type="Standard - Arc" version="0" id="O33">
1449+ <dia:attribute name="obj_pos">
1450+ <dia:point val="-0.333411,19.3272"/>
1451+ </dia:attribute>
1452+ <dia:attribute name="obj_bb">
1453+ <dia:rectangle val="-2.80954,19.2707;-0.276884,26.5994"/>
1454+ </dia:attribute>
1455+ <dia:attribute name="conn_endpoints">
1456+ <dia:point val="-0.333411,19.3272"/>
1457+ <dia:point val="-1.35706,26.5429"/>
1458+ </dia:attribute>
1459+ <dia:attribute name="curve_distance">
1460+ <dia:real val="1.8888235106861362"/>
1461+ </dia:attribute>
1462+ <dia:attribute name="line_width">
1463+ <dia:real val="0.10000000149011612"/>
1464+ </dia:attribute>
1465+ <dia:attribute name="end_arrow">
1466+ <dia:enum val="22"/>
1467+ </dia:attribute>
1468+ <dia:attribute name="end_arrow_length">
1469+ <dia:real val="0.5"/>
1470+ </dia:attribute>
1471+ <dia:attribute name="end_arrow_width">
1472+ <dia:real val="0.5"/>
1473+ </dia:attribute>
1474+ <dia:connections>
1475+ <dia:connection handle="0" to="O11" connection="12"/>
1476+ <dia:connection handle="1" to="O35" connection="0"/>
1477+ </dia:connections>
1478+ </dia:object>
1479+ <dia:group>
1480+ <dia:object type="Flowchart - Parallelogram" version="0" id="O34">
1481+ <dia:attribute name="obj_pos">
1482+ <dia:point val="-1.635,26.2429"/>
1483+ </dia:attribute>
1484+ <dia:attribute name="obj_bb">
1485+ <dia:rectangle val="-1.685,26.1929;5.27412,28.2929"/>
1486+ </dia:attribute>
1487+ <dia:attribute name="elem_corner">
1488+ <dia:point val="-1.635,26.2429"/>
1489+ </dia:attribute>
1490+ <dia:attribute name="elem_width">
1491+ <dia:real val="6.8591166559453667"/>
1492+ </dia:attribute>
1493+ <dia:attribute name="elem_height">
1494+ <dia:real val="2"/>
1495+ </dia:attribute>
1496+ <dia:attribute name="show_background">
1497+ <dia:boolean val="true"/>
1498+ </dia:attribute>
1499+ <dia:attribute name="shear_angle">
1500+ <dia:real val="70"/>
1501+ </dia:attribute>
1502+ <dia:attribute name="padding">
1503+ <dia:real val="0.5"/>
1504+ </dia:attribute>
1505+ <dia:attribute name="text">
1506+ <dia:composite type="text">
1507+ <dia:attribute name="string">
1508+ <dia:string>#LTS Haskell x.y#</dia:string>
1509+ </dia:attribute>
1510+ <dia:attribute name="font">
1511+ <dia:font family="sans" style="0" name="Helvetica"/>
1512+ </dia:attribute>
1513+ <dia:attribute name="height">
1514+ <dia:real val="0.80000000000000004"/>
1515+ </dia:attribute>
1516+ <dia:attribute name="pos">
1517+ <dia:point val="1.79456,27.4379"/>
1518+ </dia:attribute>
1519+ <dia:attribute name="color">
1520+ <dia:color val="#000000"/>
1521+ </dia:attribute>
1522+ <dia:attribute name="alignment">
1523+ <dia:enum val="1"/>
1524+ </dia:attribute>
1525+ </dia:composite>
1526+ </dia:attribute>
1527+ </dia:object>
1528+ <dia:object type="Flowchart - Parallelogram" version="0" id="O35">
1529+ <dia:attribute name="obj_pos">
1530+ <dia:point val="-2.085,26.5429"/>
1531+ </dia:attribute>
1532+ <dia:attribute name="obj_bb">
1533+ <dia:rectangle val="-2.135,26.4929;4.82412,28.5929"/>
1534+ </dia:attribute>
1535+ <dia:attribute name="elem_corner">
1536+ <dia:point val="-2.085,26.5429"/>
1537+ </dia:attribute>
1538+ <dia:attribute name="elem_width">
1539+ <dia:real val="6.8591166559453667"/>
1540+ </dia:attribute>
1541+ <dia:attribute name="elem_height">
1542+ <dia:real val="2"/>
1543+ </dia:attribute>
1544+ <dia:attribute name="show_background">
1545+ <dia:boolean val="true"/>
1546+ </dia:attribute>
1547+ <dia:attribute name="shear_angle">
1548+ <dia:real val="70"/>
1549+ </dia:attribute>
1550+ <dia:attribute name="padding">
1551+ <dia:real val="0.5"/>
1552+ </dia:attribute>
1553+ <dia:attribute name="text">
1554+ <dia:composite type="text">
1555+ <dia:attribute name="string">
1556+ <dia:string>#LTS Haskell x.y#</dia:string>
1557+ </dia:attribute>
1558+ <dia:attribute name="font">
1559+ <dia:font family="sans" style="0" name="Helvetica"/>
1560+ </dia:attribute>
1561+ <dia:attribute name="height">
1562+ <dia:real val="0.80000000000000004"/>
1563+ </dia:attribute>
1564+ <dia:attribute name="pos">
1565+ <dia:point val="1.34456,27.7379"/>
1566+ </dia:attribute>
1567+ <dia:attribute name="color">
1568+ <dia:color val="#000000"/>
1569+ </dia:attribute>
1570+ <dia:attribute name="alignment">
1571+ <dia:enum val="1"/>
1572+ </dia:attribute>
1573+ </dia:composite>
1574+ </dia:attribute>
1575+ </dia:object>
1576+ <dia:object type="Flowchart - Parallelogram" version="0" id="O36">
1577+ <dia:attribute name="obj_pos">
1578+ <dia:point val="-2.55308,26.8153"/>
1579+ </dia:attribute>
1580+ <dia:attribute name="obj_bb">
1581+ <dia:rectangle val="-2.60308,26.7653;4.35604,28.8653"/>
1582+ </dia:attribute>
1583+ <dia:attribute name="elem_corner">
1584+ <dia:point val="-2.55308,26.8153"/>
1585+ </dia:attribute>
1586+ <dia:attribute name="elem_width">
1587+ <dia:real val="6.8591166559453667"/>
1588+ </dia:attribute>
1589+ <dia:attribute name="elem_height">
1590+ <dia:real val="2"/>
1591+ </dia:attribute>
1592+ <dia:attribute name="show_background">
1593+ <dia:boolean val="true"/>
1594+ </dia:attribute>
1595+ <dia:attribute name="shear_angle">
1596+ <dia:real val="70"/>
1597+ </dia:attribute>
1598+ <dia:attribute name="padding">
1599+ <dia:real val="0.5"/>
1600+ </dia:attribute>
1601+ <dia:attribute name="text">
1602+ <dia:composite type="text">
1603+ <dia:attribute name="string">
1604+ <dia:string>#LTS Haskell x.y#</dia:string>
1605+ </dia:attribute>
1606+ <dia:attribute name="font">
1607+ <dia:font family="sans" style="0" name="Helvetica"/>
1608+ </dia:attribute>
1609+ <dia:attribute name="height">
1610+ <dia:real val="0.80000000000000004"/>
1611+ </dia:attribute>
1612+ <dia:attribute name="pos">
1613+ <dia:point val="0.876478,28.0103"/>
1614+ </dia:attribute>
1615+ <dia:attribute name="color">
1616+ <dia:color val="#000000"/>
1617+ </dia:attribute>
1618+ <dia:attribute name="alignment">
1619+ <dia:enum val="1"/>
1620+ </dia:attribute>
1621+ </dia:composite>
1622+ </dia:attribute>
1623+ </dia:object>
1624+ </dia:group>
1625+ <dia:object type="Flowchart - Box" version="0" id="O37">
1626+ <dia:attribute name="obj_pos">
1627+ <dia:point val="7.665,18.915"/>
1628+ </dia:attribute>
1629+ <dia:attribute name="obj_bb">
1630+ <dia:rectangle val="7.615,18.865;12.956,20.865"/>
1631+ </dia:attribute>
1632+ <dia:attribute name="elem_corner">
1633+ <dia:point val="7.665,18.915"/>
1634+ </dia:attribute>
1635+ <dia:attribute name="elem_width">
1636+ <dia:real val="5.2410062688035248"/>
1637+ </dia:attribute>
1638+ <dia:attribute name="elem_height">
1639+ <dia:real val="1.9000000014901162"/>
1640+ </dia:attribute>
1641+ <dia:attribute name="border_width">
1642+ <dia:real val="0.10000000149011612"/>
1643+ </dia:attribute>
1644+ <dia:attribute name="border_color">
1645+ <dia:color val="#ff0000"/>
1646+ </dia:attribute>
1647+ <dia:attribute name="show_background">
1648+ <dia:boolean val="true"/>
1649+ </dia:attribute>
1650+ <dia:attribute name="padding">
1651+ <dia:real val="0.5"/>
1652+ </dia:attribute>
1653+ <dia:attribute name="text">
1654+ <dia:composite type="text">
1655+ <dia:attribute name="string">
1656+ <dia:string>#cabal2nix#</dia:string>
1657+ </dia:attribute>
1658+ <dia:attribute name="font">
1659+ <dia:font family="sans" style="0" name="Helvetica"/>
1660+ </dia:attribute>
1661+ <dia:attribute name="height">
1662+ <dia:real val="0.80000000000000004"/>
1663+ </dia:attribute>
1664+ <dia:attribute name="pos">
1665+ <dia:point val="10.2855,20.06"/>
1666+ </dia:attribute>
1667+ <dia:attribute name="color">
1668+ <dia:color val="#000000"/>
1669+ </dia:attribute>
1670+ <dia:attribute name="alignment">
1671+ <dia:enum val="1"/>
1672+ </dia:attribute>
1673+ </dia:composite>
1674+ </dia:attribute>
1675+ </dia:object>
1676+ <dia:object type="Standard - Arc" version="0" id="O38">
1677+ <dia:attribute name="obj_pos">
1678+ <dia:point val="3.77316,14.5879"/>
1679+ </dia:attribute>
1680+ <dia:attribute name="obj_bb">
1681+ <dia:rectangle val="3.70274,14.5175;9.04567,18.9854"/>
1682+ </dia:attribute>
1683+ <dia:attribute name="conn_endpoints">
1684+ <dia:point val="3.77316,14.5879"/>
1685+ <dia:point val="8.97525,18.915"/>
1686+ </dia:attribute>
1687+ <dia:attribute name="curve_distance">
1688+ <dia:real val="-0.48495657994633201"/>
1689+ </dia:attribute>
1690+ <dia:attribute name="line_width">
1691+ <dia:real val="0.10000000149011612"/>
1692+ </dia:attribute>
1693+ <dia:attribute name="end_arrow">
1694+ <dia:enum val="22"/>
1695+ </dia:attribute>
1696+ <dia:attribute name="end_arrow_length">
1697+ <dia:real val="0.5"/>
1698+ </dia:attribute>
1699+ <dia:attribute name="end_arrow_width">
1700+ <dia:real val="0.5"/>
1701+ </dia:attribute>
1702+ <dia:connections>
1703+ <dia:connection handle="0" to="O27" connection="11"/>
1704+ <dia:connection handle="1" to="O37" connection="1"/>
1705+ </dia:connections>
1706+ </dia:object>
1707+ <dia:object type="Standard - Line" version="0" id="O39">
1708+ <dia:attribute name="obj_pos">
1709+ <dia:point val="10.2855,20.815"/>
1710+ </dia:attribute>
1711+ <dia:attribute name="obj_bb">
1712+ <dia:rectangle val="9.90105,20.7644;10.6246,23.3301"/>
1713+ </dia:attribute>
1714+ <dia:attribute name="conn_endpoints">
1715+ <dia:point val="10.2855,20.815"/>
1716+ <dia:point val="10.2551,23.2184"/>
1717+ </dia:attribute>
1718+ <dia:attribute name="numcp">
1719+ <dia:int val="1"/>
1720+ </dia:attribute>
1721+ <dia:attribute name="end_arrow">
1722+ <dia:enum val="22"/>
1723+ </dia:attribute>
1724+ <dia:attribute name="end_arrow_length">
1725+ <dia:real val="0.5"/>
1726+ </dia:attribute>
1727+ <dia:attribute name="end_arrow_width">
1728+ <dia:real val="0.5"/>
1729+ </dia:attribute>
1730+ <dia:connections>
1731+ <dia:connection handle="0" to="O37" connection="13"/>
1732+ <dia:connection handle="1" to="O23" connection="2"/>
1733+ </dia:connections>
1734+ </dia:object>
1735+ <dia:object type="Standard - Arc" version="0" id="O40">
1736+ <dia:attribute name="obj_pos">
1737+ <dia:point val="3.69132,26.2429"/>
1738+ </dia:attribute>
1739+ <dia:attribute name="obj_bb">
1740+ <dia:rectangle val="3.625,15.088;8.92045,26.3092"/>
1741+ </dia:attribute>
1742+ <dia:attribute name="conn_endpoints">
1743+ <dia:point val="3.69132,26.2429"/>
1744+ <dia:point val="8.79396,15.1543"/>
1745+ </dia:attribute>
1746+ <dia:attribute name="curve_distance">
1747+ <dia:real val="0.38078805475472505"/>
1748+ </dia:attribute>
1749+ <dia:attribute name="line_width">
1750+ <dia:real val="0.10000000149011612"/>
1751+ </dia:attribute>
1752+ <dia:attribute name="end_arrow">
1753+ <dia:enum val="22"/>
1754+ </dia:attribute>
1755+ <dia:attribute name="end_arrow_length">
1756+ <dia:real val="0.5"/>
1757+ </dia:attribute>
1758+ <dia:attribute name="end_arrow_width">
1759+ <dia:real val="0.5"/>
1760+ </dia:attribute>
1761+ <dia:connections>
1762+ <dia:connection handle="0" to="O34" connection="3"/>
1763+ <dia:connection handle="1" to="O16" connection="12"/>
1764+ </dia:connections>
1765+ </dia:object>
1766+ </dia:layer>
1767+</dia:diagram>
doc/pipeline-overview.dianew file+625
@@ -0,0 +1,625 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<dia:diagram xmlns:dia="http://www.lysator.liu.se/~alla/dia/">
3+ <dia:diagramdata>
4+ <dia:attribute name="background">
5+ <dia:color val="#ffffff"/>
6+ </dia:attribute>
7+ <dia:attribute name="pagebreak">
8+ <dia:color val="#000099"/>
9+ </dia:attribute>
10+ <dia:attribute name="paper">
11+ <dia:composite type="paper">
12+ <dia:attribute name="name">
13+ <dia:string>#A4#</dia:string>
14+ </dia:attribute>
15+ <dia:attribute name="tmargin">
16+ <dia:real val="2.8199999332427979"/>
17+ </dia:attribute>
18+ <dia:attribute name="bmargin">
19+ <dia:real val="2.8222000598907471"/>
20+ </dia:attribute>
21+ <dia:attribute name="lmargin">
22+ <dia:real val="2.8222000598907471"/>
23+ </dia:attribute>
24+ <dia:attribute name="rmargin">
25+ <dia:real val="2.8222000598907471"/>
26+ </dia:attribute>
27+ <dia:attribute name="is_portrait">
28+ <dia:boolean val="true"/>
29+ </dia:attribute>
30+ <dia:attribute name="scaling">
31+ <dia:real val="0.90529471635818481"/>
32+ </dia:attribute>
33+ <dia:attribute name="fitto">
34+ <dia:boolean val="true"/>
35+ </dia:attribute>
36+ <dia:attribute name="fitwidth">
37+ <dia:int val="1"/>
38+ </dia:attribute>
39+ <dia:attribute name="fitheight">
40+ <dia:int val="1"/>
41+ </dia:attribute>
42+ </dia:composite>
43+ </dia:attribute>
44+ <dia:attribute name="grid">
45+ <dia:composite type="grid">
46+ <dia:attribute name="width_x">
47+ <dia:real val="1"/>
48+ </dia:attribute>
49+ <dia:attribute name="width_y">
50+ <dia:real val="1"/>
51+ </dia:attribute>
52+ <dia:attribute name="visible_x">
53+ <dia:int val="1"/>
54+ </dia:attribute>
55+ <dia:attribute name="visible_y">
56+ <dia:int val="1"/>
57+ </dia:attribute>
58+ <dia:composite type="color"/>
59+ </dia:composite>
60+ </dia:attribute>
61+ <dia:attribute name="color">
62+ <dia:color val="#d8e5e5"/>
63+ </dia:attribute>
64+ <dia:attribute name="guides">
65+ <dia:composite type="guides">
66+ <dia:attribute name="hguides"/>
67+ <dia:attribute name="vguides"/>
68+ </dia:composite>
69+ </dia:attribute>
70+ </dia:diagramdata>
71+ <dia:layer name="Background" visible="true" active="true">
72+ <dia:object type="Network - Storage" version="1" id="O0">
73+ <dia:attribute name="obj_pos">
74+ <dia:point val="1.88131,8.06715"/>
75+ </dia:attribute>
76+ <dia:attribute name="obj_bb">
77+ <dia:rectangle val="1.16131,8.01715;4.30131,10.9621"/>
78+ </dia:attribute>
79+ <dia:attribute name="meta">
80+ <dia:composite type="dict"/>
81+ </dia:attribute>
82+ <dia:attribute name="elem_corner">
83+ <dia:point val="1.88131,8.06715"/>
84+ </dia:attribute>
85+ <dia:attribute name="elem_width">
86+ <dia:real val="1.7"/>
87+ </dia:attribute>
88+ <dia:attribute name="elem_height">
89+ <dia:real val="2"/>
90+ </dia:attribute>
91+ <dia:attribute name="line_width">
92+ <dia:real val="0.10000000149011612"/>
93+ </dia:attribute>
94+ <dia:attribute name="line_colour">
95+ <dia:color val="#000000"/>
96+ </dia:attribute>
97+ <dia:attribute name="fill_colour">
98+ <dia:color val="#ffffff"/>
99+ </dia:attribute>
100+ <dia:attribute name="show_background">
101+ <dia:boolean val="true"/>
102+ </dia:attribute>
103+ <dia:attribute name="line_style">
104+ <dia:enum val="0"/>
105+ <dia:real val="1"/>
106+ </dia:attribute>
107+ <dia:attribute name="padding">
108+ <dia:real val="0.10000000000000001"/>
109+ </dia:attribute>
110+ <dia:attribute name="text">
111+ <dia:composite type="text">
112+ <dia:attribute name="string">
113+ <dia:string>#Hackage#</dia:string>
114+ </dia:attribute>
115+ <dia:attribute name="font">
116+ <dia:font family="sans" style="0" name="Helvetica"/>
117+ </dia:attribute>
118+ <dia:attribute name="height">
119+ <dia:real val="0.84666663408279419"/>
120+ </dia:attribute>
121+ <dia:attribute name="pos">
122+ <dia:point val="2.73131,10.7021"/>
123+ </dia:attribute>
124+ <dia:attribute name="color">
125+ <dia:color val="#000000"/>
126+ </dia:attribute>
127+ <dia:attribute name="alignment">
128+ <dia:enum val="1"/>
129+ </dia:attribute>
130+ </dia:composite>
131+ </dia:attribute>
132+ <dia:attribute name="flip_horizontal">
133+ <dia:boolean val="false"/>
134+ </dia:attribute>
135+ <dia:attribute name="flip_vertical">
136+ <dia:boolean val="false"/>
137+ </dia:attribute>
138+ <dia:attribute name="subscale">
139+ <dia:real val="1"/>
140+ </dia:attribute>
141+ </dia:object>
142+ <dia:object type="Network - Storage" version="1" id="O1">
143+ <dia:attribute name="obj_pos">
144+ <dia:point val="6.68779,8.06715"/>
145+ </dia:attribute>
146+ <dia:attribute name="obj_bb">
147+ <dia:rectangle val="5.87529,8.01715;9.20029,10.9621"/>
148+ </dia:attribute>
149+ <dia:attribute name="meta">
150+ <dia:composite type="dict"/>
151+ </dia:attribute>
152+ <dia:attribute name="elem_corner">
153+ <dia:point val="6.68779,8.06715"/>
154+ </dia:attribute>
155+ <dia:attribute name="elem_width">
156+ <dia:real val="1.7"/>
157+ </dia:attribute>
158+ <dia:attribute name="elem_height">
159+ <dia:real val="2"/>
160+ </dia:attribute>
161+ <dia:attribute name="line_width">
162+ <dia:real val="0.10000000149011612"/>
163+ </dia:attribute>
164+ <dia:attribute name="line_colour">
165+ <dia:color val="#000000"/>
166+ </dia:attribute>
167+ <dia:attribute name="fill_colour">
168+ <dia:color val="#ffffff"/>
169+ </dia:attribute>
170+ <dia:attribute name="show_background">
171+ <dia:boolean val="true"/>
172+ </dia:attribute>
173+ <dia:attribute name="line_style">
174+ <dia:enum val="0"/>
175+ <dia:real val="1"/>
176+ </dia:attribute>
177+ <dia:attribute name="padding">
178+ <dia:real val="0.10000000000000001"/>
179+ </dia:attribute>
180+ <dia:attribute name="text">
181+ <dia:composite type="text">
182+ <dia:attribute name="string">
183+ <dia:string>#Stackage#</dia:string>
184+ </dia:attribute>
185+ <dia:attribute name="font">
186+ <dia:font family="sans" style="0" name="Helvetica"/>
187+ </dia:attribute>
188+ <dia:attribute name="height">
189+ <dia:real val="0.84666663408279419"/>
190+ </dia:attribute>
191+ <dia:attribute name="pos">
192+ <dia:point val="7.53779,10.7021"/>
193+ </dia:attribute>
194+ <dia:attribute name="color">
195+ <dia:color val="#000000"/>
196+ </dia:attribute>
197+ <dia:attribute name="alignment">
198+ <dia:enum val="1"/>
199+ </dia:attribute>
200+ </dia:composite>
201+ </dia:attribute>
202+ <dia:attribute name="flip_horizontal">
203+ <dia:boolean val="false"/>
204+ </dia:attribute>
205+ <dia:attribute name="flip_vertical">
206+ <dia:boolean val="false"/>
207+ </dia:attribute>
208+ <dia:attribute name="subscale">
209+ <dia:real val="1"/>
210+ </dia:attribute>
211+ </dia:object>
212+ <dia:object type="Network - Storage" version="1" id="O2">
213+ <dia:attribute name="obj_pos">
214+ <dia:point val="11.3743,8.06715"/>
215+ </dia:attribute>
216+ <dia:attribute name="obj_bb">
217+ <dia:rectangle val="10.7743,8.01715;13.6743,10.9621"/>
218+ </dia:attribute>
219+ <dia:attribute name="meta">
220+ <dia:composite type="dict"/>
221+ </dia:attribute>
222+ <dia:attribute name="elem_corner">
223+ <dia:point val="11.3743,8.06715"/>
224+ </dia:attribute>
225+ <dia:attribute name="elem_width">
226+ <dia:real val="1.7"/>
227+ </dia:attribute>
228+ <dia:attribute name="elem_height">
229+ <dia:real val="2"/>
230+ </dia:attribute>
231+ <dia:attribute name="line_width">
232+ <dia:real val="0.10000000149011612"/>
233+ </dia:attribute>
234+ <dia:attribute name="line_colour">
235+ <dia:color val="#000000"/>
236+ </dia:attribute>
237+ <dia:attribute name="fill_colour">
238+ <dia:color val="#ffffff"/>
239+ </dia:attribute>
240+ <dia:attribute name="show_background">
241+ <dia:boolean val="true"/>
242+ </dia:attribute>
243+ <dia:attribute name="line_style">
244+ <dia:enum val="0"/>
245+ <dia:real val="1"/>
246+ </dia:attribute>
247+ <dia:attribute name="padding">
248+ <dia:real val="0.10000000000000001"/>
249+ </dia:attribute>
250+ <dia:attribute name="text">
251+ <dia:composite type="text">
252+ <dia:attribute name="string">
253+ <dia:string>#Nixpkgs#</dia:string>
254+ </dia:attribute>
255+ <dia:attribute name="font">
256+ <dia:font family="sans" style="0" name="Helvetica"/>
257+ </dia:attribute>
258+ <dia:attribute name="height">
259+ <dia:real val="0.84666663408279419"/>
260+ </dia:attribute>
261+ <dia:attribute name="pos">
262+ <dia:point val="12.2243,10.7021"/>
263+ </dia:attribute>
264+ <dia:attribute name="color">
265+ <dia:color val="#000000"/>
266+ </dia:attribute>
267+ <dia:attribute name="alignment">
268+ <dia:enum val="1"/>
269+ </dia:attribute>
270+ </dia:composite>
271+ </dia:attribute>
272+ <dia:attribute name="flip_horizontal">
273+ <dia:boolean val="false"/>
274+ </dia:attribute>
275+ <dia:attribute name="flip_vertical">
276+ <dia:boolean val="false"/>
277+ </dia:attribute>
278+ <dia:attribute name="subscale">
279+ <dia:real val="1"/>
280+ </dia:attribute>
281+ </dia:object>
282+ <dia:object type="Network - Cloud" version="1" id="O3">
283+ <dia:attribute name="obj_pos">
284+ <dia:point val="11.7702,3.33165"/>
285+ </dia:attribute>
286+ <dia:attribute name="obj_bb">
287+ <dia:rectangle val="11.7702,3.33165;17.2182,5.64688"/>
288+ </dia:attribute>
289+ <dia:attribute name="meta">
290+ <dia:composite type="dict"/>
291+ </dia:attribute>
292+ <dia:attribute name="elem_corner">
293+ <dia:point val="11.7702,3.33165"/>
294+ </dia:attribute>
295+ <dia:attribute name="elem_width">
296+ <dia:real val="5.4479782276937048"/>
297+ </dia:attribute>
298+ <dia:attribute name="elem_height">
299+ <dia:real val="2.3152317880599642"/>
300+ </dia:attribute>
301+ <dia:attribute name="line_width">
302+ <dia:real val="0.10000000149011612"/>
303+ </dia:attribute>
304+ <dia:attribute name="line_colour">
305+ <dia:color val="#000000"/>
306+ </dia:attribute>
307+ <dia:attribute name="fill_colour">
308+ <dia:color val="#ffffff"/>
309+ </dia:attribute>
310+ <dia:attribute name="show_background">
311+ <dia:boolean val="true"/>
312+ </dia:attribute>
313+ <dia:attribute name="line_style">
314+ <dia:enum val="0"/>
315+ <dia:real val="1"/>
316+ </dia:attribute>
317+ <dia:attribute name="padding">
318+ <dia:real val="0.10000000000000001"/>
319+ </dia:attribute>
320+ <dia:attribute name="text">
321+ <dia:composite type="text">
322+ <dia:attribute name="string">
323+ <dia:string>#Internet#</dia:string>
324+ </dia:attribute>
325+ <dia:attribute name="font">
326+ <dia:font family="sans" style="0" name="Helvetica"/>
327+ </dia:attribute>
328+ <dia:attribute name="height">
329+ <dia:real val="0.84666663408279419"/>
330+ </dia:attribute>
331+ <dia:attribute name="pos">
332+ <dia:point val="14.6402,4.74175"/>
333+ </dia:attribute>
334+ <dia:attribute name="color">
335+ <dia:color val="#000000"/>
336+ </dia:attribute>
337+ <dia:attribute name="alignment">
338+ <dia:enum val="1"/>
339+ </dia:attribute>
340+ </dia:composite>
341+ </dia:attribute>
342+ <dia:attribute name="flip_horizontal">
343+ <dia:boolean val="false"/>
344+ </dia:attribute>
345+ <dia:attribute name="flip_vertical">
346+ <dia:boolean val="false"/>
347+ </dia:attribute>
348+ <dia:attribute name="subscale">
349+ <dia:real val="1"/>
350+ </dia:attribute>
351+ </dia:object>
352+ <dia:object type="Standard - Line" version="0" id="O4">
353+ <dia:attribute name="obj_pos">
354+ <dia:point val="3.63144,9.06715"/>
355+ </dia:attribute>
356+ <dia:attribute name="obj_bb">
357+ <dia:rectangle val="3.58144,8.70535;6.74994,9.42895"/>
358+ </dia:attribute>
359+ <dia:attribute name="conn_endpoints">
360+ <dia:point val="3.63144,9.06715"/>
361+ <dia:point val="6.63813,9.06715"/>
362+ </dia:attribute>
363+ <dia:attribute name="numcp">
364+ <dia:int val="1"/>
365+ </dia:attribute>
366+ <dia:attribute name="end_arrow">
367+ <dia:enum val="22"/>
368+ </dia:attribute>
369+ <dia:attribute name="end_arrow_length">
370+ <dia:real val="0.5"/>
371+ </dia:attribute>
372+ <dia:attribute name="end_arrow_width">
373+ <dia:real val="0.5"/>
374+ </dia:attribute>
375+ <dia:connections>
376+ <dia:connection handle="0" to="O0" connection="2"/>
377+ <dia:connection handle="1" to="O1" connection="2"/>
378+ </dia:connections>
379+ </dia:object>
380+ <dia:object type="Standard - Line" version="0" id="O5">
381+ <dia:attribute name="obj_pos">
382+ <dia:point val="8.42921,9.06715"/>
383+ </dia:attribute>
384+ <dia:attribute name="obj_bb">
385+ <dia:rectangle val="8.37921,8.70535;11.4369,9.42895"/>
386+ </dia:attribute>
387+ <dia:attribute name="conn_endpoints">
388+ <dia:point val="8.42921,9.06715"/>
389+ <dia:point val="11.3251,9.06715"/>
390+ </dia:attribute>
391+ <dia:attribute name="numcp">
392+ <dia:int val="1"/>
393+ </dia:attribute>
394+ <dia:attribute name="end_arrow">
395+ <dia:enum val="22"/>
396+ </dia:attribute>
397+ <dia:attribute name="end_arrow_length">
398+ <dia:real val="0.5"/>
399+ </dia:attribute>
400+ <dia:attribute name="end_arrow_width">
401+ <dia:real val="0.5"/>
402+ </dia:attribute>
403+ <dia:connections>
404+ <dia:connection handle="0" to="O1" connection="2"/>
405+ <dia:connection handle="1" to="O2" connection="2"/>
406+ </dia:connections>
407+ </dia:object>
408+ <dia:object type="Standard - Line" version="0" id="O6">
409+ <dia:attribute name="obj_pos">
410+ <dia:point val="13.1243,9.06419"/>
411+ </dia:attribute>
412+ <dia:attribute name="obj_bb">
413+ <dia:rectangle val="13.0741,8.69217;16.4349,9.41577"/>
414+ </dia:attribute>
415+ <dia:attribute name="conn_endpoints">
416+ <dia:point val="13.1243,9.06419"/>
417+ <dia:point val="16.3231,9.05155"/>
418+ </dia:attribute>
419+ <dia:attribute name="numcp">
420+ <dia:int val="1"/>
421+ </dia:attribute>
422+ <dia:attribute name="end_arrow">
423+ <dia:enum val="22"/>
424+ </dia:attribute>
425+ <dia:attribute name="end_arrow_length">
426+ <dia:real val="0.5"/>
427+ </dia:attribute>
428+ <dia:attribute name="end_arrow_width">
429+ <dia:real val="0.5"/>
430+ </dia:attribute>
431+ <dia:connections>
432+ <dia:connection handle="0" to="O2" connection="2"/>
433+ <dia:connection handle="1" to="O7" connection="2"/>
434+ </dia:connections>
435+ </dia:object>
436+ <dia:object type="Network - Storage" version="1" id="O7">
437+ <dia:attribute name="obj_pos">
438+ <dia:point val="16.3733,8.0474"/>
439+ </dia:attribute>
440+ <dia:attribute name="obj_bb">
441+ <dia:rectangle val="16.3233,7.9974;18.1233,10.9424"/>
442+ </dia:attribute>
443+ <dia:attribute name="meta">
444+ <dia:composite type="dict"/>
445+ </dia:attribute>
446+ <dia:attribute name="elem_corner">
447+ <dia:point val="16.3733,8.0474"/>
448+ </dia:attribute>
449+ <dia:attribute name="elem_width">
450+ <dia:real val="1.7"/>
451+ </dia:attribute>
452+ <dia:attribute name="elem_height">
453+ <dia:real val="2"/>
454+ </dia:attribute>
455+ <dia:attribute name="line_width">
456+ <dia:real val="0.10000000149011612"/>
457+ </dia:attribute>
458+ <dia:attribute name="line_colour">
459+ <dia:color val="#000000"/>
460+ </dia:attribute>
461+ <dia:attribute name="fill_colour">
462+ <dia:color val="#ffffff"/>
463+ </dia:attribute>
464+ <dia:attribute name="show_background">
465+ <dia:boolean val="true"/>
466+ </dia:attribute>
467+ <dia:attribute name="line_style">
468+ <dia:enum val="0"/>
469+ <dia:real val="1"/>
470+ </dia:attribute>
471+ <dia:attribute name="padding">
472+ <dia:real val="0.10000000000000001"/>
473+ </dia:attribute>
474+ <dia:attribute name="text">
475+ <dia:composite type="text">
476+ <dia:attribute name="string">
477+ <dia:string>#User#</dia:string>
478+ </dia:attribute>
479+ <dia:attribute name="font">
480+ <dia:font family="sans" style="0" name="Helvetica"/>
481+ </dia:attribute>
482+ <dia:attribute name="height">
483+ <dia:real val="0.84666663408279419"/>
484+ </dia:attribute>
485+ <dia:attribute name="pos">
486+ <dia:point val="17.2233,10.6824"/>
487+ </dia:attribute>
488+ <dia:attribute name="color">
489+ <dia:color val="#000000"/>
490+ </dia:attribute>
491+ <dia:attribute name="alignment">
492+ <dia:enum val="1"/>
493+ </dia:attribute>
494+ </dia:composite>
495+ </dia:attribute>
496+ <dia:attribute name="flip_horizontal">
497+ <dia:boolean val="false"/>
498+ </dia:attribute>
499+ <dia:attribute name="flip_vertical">
500+ <dia:boolean val="false"/>
501+ </dia:attribute>
502+ <dia:attribute name="subscale">
503+ <dia:real val="1"/>
504+ </dia:attribute>
505+ </dia:object>
506+ <dia:object type="Standard - Arc" version="0" id="O8">
507+ <dia:attribute name="obj_pos">
508+ <dia:point val="2.88131,9.06715"/>
509+ </dia:attribute>
510+ <dia:attribute name="obj_bb">
511+ <dia:rectangle val="2.83131,6.80516;12.4243,9.11715"/>
512+ </dia:attribute>
513+ <dia:attribute name="conn_endpoints">
514+ <dia:point val="2.88131,9.06715"/>
515+ <dia:point val="12.3743,9.06715"/>
516+ </dia:attribute>
517+ <dia:attribute name="curve_distance">
518+ <dia:real val="-2.2119853006179615"/>
519+ </dia:attribute>
520+ <dia:attribute name="line_width">
521+ <dia:real val="0.10000000149011612"/>
522+ </dia:attribute>
523+ <dia:attribute name="end_arrow">
524+ <dia:enum val="22"/>
525+ </dia:attribute>
526+ <dia:attribute name="end_arrow_length">
527+ <dia:real val="0.5"/>
528+ </dia:attribute>
529+ <dia:attribute name="end_arrow_width">
530+ <dia:real val="0.5"/>
531+ </dia:attribute>
532+ <dia:connections>
533+ <dia:connection handle="0" to="O0" connection="2"/>
534+ <dia:connection handle="1" to="O2" connection="2"/>
535+ </dia:connections>
536+ </dia:object>
537+ <dia:object type="Standard - Line" version="0" id="O9">
538+ <dia:attribute name="obj_pos">
539+ <dia:point val="13.9888,5.58092"/>
540+ </dia:attribute>
541+ <dia:attribute name="obj_bb">
542+ <dia:rectangle val="12.7291,5.51454;14.0552,8.21461"/>
543+ </dia:attribute>
544+ <dia:attribute name="conn_endpoints">
545+ <dia:point val="13.9888,5.58092"/>
546+ <dia:point val="12.8161,8.11315"/>
547+ </dia:attribute>
548+ <dia:attribute name="numcp">
549+ <dia:int val="1"/>
550+ </dia:attribute>
551+ <dia:attribute name="end_arrow">
552+ <dia:enum val="22"/>
553+ </dia:attribute>
554+ <dia:attribute name="end_arrow_length">
555+ <dia:real val="0.5"/>
556+ </dia:attribute>
557+ <dia:attribute name="end_arrow_width">
558+ <dia:real val="0.5"/>
559+ </dia:attribute>
560+ <dia:connections>
561+ <dia:connection handle="0" to="O3" connection="4"/>
562+ <dia:connection handle="1" to="O2" connection="2"/>
563+ </dia:connections>
564+ </dia:object>
565+ <dia:object type="Standard - Line" version="0" id="O10">
566+ <dia:attribute name="obj_pos">
567+ <dia:point val="15.0831,5.40979"/>
568+ </dia:attribute>
569+ <dia:attribute name="obj_bb">
570+ <dia:rectangle val="15.0142,5.34083;16.82,8.15366"/>
571+ </dia:attribute>
572+ <dia:attribute name="conn_endpoints">
573+ <dia:point val="15.0831,5.40979"/>
574+ <dia:point val="16.7511,8.05905"/>
575+ </dia:attribute>
576+ <dia:attribute name="numcp">
577+ <dia:int val="1"/>
578+ </dia:attribute>
579+ <dia:attribute name="end_arrow">
580+ <dia:enum val="22"/>
581+ </dia:attribute>
582+ <dia:attribute name="end_arrow_length">
583+ <dia:real val="0.5"/>
584+ </dia:attribute>
585+ <dia:attribute name="end_arrow_width">
586+ <dia:real val="0.5"/>
587+ </dia:attribute>
588+ <dia:connections>
589+ <dia:connection handle="0" to="O3" connection="4"/>
590+ <dia:connection handle="1" to="O7" connection="2"/>
591+ </dia:connections>
592+ </dia:object>
593+ <dia:object type="Standard - Arc" version="0" id="O11">
594+ <dia:attribute name="obj_pos">
595+ <dia:point val="2.73131,8.06715"/>
596+ </dia:attribute>
597+ <dia:attribute name="obj_bb">
598+ <dia:rectangle val="2.67808,5.82924;17.4265,9.10063"/>
599+ </dia:attribute>
600+ <dia:attribute name="conn_endpoints">
601+ <dia:point val="2.73131,8.06715"/>
602+ <dia:point val="17.3733,9.0474"/>
603+ </dia:attribute>
604+ <dia:attribute name="curve_distance">
605+ <dia:real val="-2.6583884076175863"/>
606+ </dia:attribute>
607+ <dia:attribute name="line_width">
608+ <dia:real val="0.10000000149011612"/>
609+ </dia:attribute>
610+ <dia:attribute name="end_arrow">
611+ <dia:enum val="22"/>
612+ </dia:attribute>
613+ <dia:attribute name="end_arrow_length">
614+ <dia:real val="0.5"/>
615+ </dia:attribute>
616+ <dia:attribute name="end_arrow_width">
617+ <dia:real val="0.5"/>
618+ </dia:attribute>
619+ <dia:connections>
620+ <dia:connection handle="0" to="O0" connection="0"/>
621+ <dia:connection handle="1" to="O7" connection="2"/>
622+ </dia:connections>
623+ </dia:object>
624+ </dia:layer>
625+</dia:diagram>