Skip to content

Instantly share code, notes, and snippets.

@jboynyc
Created February 17, 2020 22:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jboynyc/e3025b20df119503ce1f509abfeac8c5 to your computer and use it in GitHub Desktop.
Save jboynyc/e3025b20df119503ce1f509abfeac8c5 to your computer and use it in GitHub Desktop.
Understanding the field of programming languages using a concept lattice
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Understanding the field of programming languages using a concept lattice \n",
"\n",
"A recent [lively discussion](https://lobste.rs/s/ya4ajj/what_language_do_you_prefer_for_new) in the Lobsters forum was sparked by the question:\n",
"\n",
"> If you were to start a new commercial project today, what language would you choose?\n",
"\n",
"Many participants in the discussion remarked that \"it depends\" (on the target platform, audience, and developer team, for instance), but even so, most took the occasion to make the case for their favorite languages. More than five dozen users chimed in to do so (and many more to add qualifications or ask questions). Reading through the thread, I was reminded of Paul Ford's [observation](https://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/) that programming languages \"contain entire civilizations.\" Various crustaceans (as Lobsters participants are called) laid out their arguments with reference, not just to the technical merits of each language, but also its broader ecosystem consisting of libraries, tooling, and documentation.\n",
"\n",
"Yes, the languages contain entire civilizations, but because many developers do not advocate for only one, but for several different languages, intercivilizational encounters also frequently take place. This places some programming languages more closely together on the map than others.\n",
"\n",
"One way to get a sense of that is through visualization. The kind of data that can be derived from the forum thread can be visualized as a [concept lattice](https://en.wikipedia.org/wiki/Formal_concept_analysis), also known among sociologists as a Galois lattice. (Luckily there's quite a good Python library for this purpose called `[concepts](https://concepts.readthedocs.io)`.)\n",
"\n",
"Below, each discussion participant who argued for one or more programming languages is coded as an \"object,\" while the programming languages for which they advocated are the object's \"properties.\" In most cases it was clear which language was being advocated, but some of the longer replies did more hedging. Those I simply skipped. I also didn't consider *negative* remarks made about programming languages."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from concepts import Definition, Context"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"d = Definition()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"d.add_object('enz', ['python'])\n",
"d.add_object('isene', ['ruby', 'julia', 'nim'])\n",
"d.add_object('mortimer', ['rust'])\n",
"d.add_object('eadwardus', ['c', 'forth', 'scheme'])\n",
"d.add_object('jlarocco', ['cl'])\n",
"d.add_object('ameo', ['typescript', 'rust'])\n",
"d.add_object('gsquire', ['go', 'rust'])\n",
"d.add_object('srpablo', ['elixir', 'python', 'ocaml'])\n",
"d.add_object('pfcuttle', ['python'])\n",
"d.add_object('WilhelmVonWeiner', ['nim'])\n",
"d.add_object('ianopolous', ['java'])\n",
"d.add_object('eriki', ['java', 'kotlin'])\n",
"d.add_object('rtpg', ['python'])\n",
"d.add_object('reezer', ['go'])\n",
"d.add_object('cos', ['julia'])\n",
"d.add_object('mempko', ['c++'])\n",
"d.add_object('mitchartemis', ['php', 'elixir', 'swift'])\n",
"d.add_object('cschorn', ['php', 'python', 'node'])\n",
"d.add_object('friendlysock', ['node', 'elixir'])\n",
"d.add_object('devth', ['node', 'clojure'])\n",
"d.add_object('erkin', ['clojure', 'elixir', 'racket', 'scheme'])\n",
"# skip MasonJar, skade\n",
"d.add_object('pfcuttle', ['java'])\n",
"d.add_object('atilaneves', ['d'])\n",
"d.add_object('dacav', ['c++'])\n",
"d.add_object('zem', ['racket', 'ruby', 'ocaml', 'd'])\n",
"d.add_object('qznc', ['d', 'rust'])\n",
"d.add_object('varjag', ['cl', 'c'])\n",
"d.add_object('vindarel', ['cl'])\n",
"d.add_object('colindean', ['scala', 'ruby', 'rust'])\n",
"# skip xyproto\n",
"d.add_object('feoh', ['python'])\n",
"d.add_object('ptman', ['go', 'rust', 'python'])\n",
"d.add_object('c-cube', ['kotlin', 'rust', 'ocaml'])\n",
"d.add_object('dasifefe', ['rust', 'c'])\n",
"d.add_object('karsten', ['rust', 'python'])\n",
"d.add_object('farrokhi', ['c', 'go'])\n",
"d.add_object('ashn', ['c', 'c++', 'typescript', 'racket', 'scheme'])\n",
"d.add_object('yumaikas', ['c#', 'nim'])\n",
"d.add_object('dvk', ['rust'])\n",
"d.add_object('iswrong', ['rust', 'python', 'go'])\n",
"d.add_object('twee', ['ada'])\n",
"d.add_object('sergeyb', ['go', 'c'])\n",
"d.add_object('gregf', ['go', 'rust'])\n",
"d.add_object('yawaramin', ['ocaml', 'reason'])\n",
"d.add_object('skatkov', ['ruby', 'clojure', 'elm', 'elixir'])\n",
"d.add_object('asymptotically', ['java'])\n",
"d.add_object('jrick', ['go', 'c', 'c++', 'rust'])\n",
"d.add_object('dbove', ['c#'])\n",
"d.add_object('dokka', ['c#'])\n",
"d.add_object('pkw', ['go'])\n",
"d.add_object('brb3', ['c#'])\n",
"d.add_object('felixyz', ['python', 'haskell', 'f#', 'julia'])\n",
"d.add_object('snej', ['swift', 'c++', 'rust'])\n",
"d.add_object('sneakycrow', ['rust', 'go'])\n",
"d.add_object('orib', ['python', 'go', 'typescript', 'java'])\n",
"d.add_object('wolfadex', ['elm'])\n",
"d.add_object('lollipopman', ['go'])\n",
"d.add_object('vaelatern', ['clojure', 'go', 'lua', 'c'])\n",
"# skip catwell\n",
"d.add_object('eonil', ['swift', 'rust'])\n",
"d.add_object('koreth', ['kotlin'])\n",
"# skip enkiv2\n",
"d.add_object('pistos', ['ruby', 'js'])\n",
"d.add_object('indirection', ['rust', 'typescript'])\n",
"d.add_object('mainecoon', ['python', 'ruby', 'typescript', 'rust'])\n",
"d.add_object('franta', ['java', 'c++', 'rust', 'd'])\n",
"d.add_object('capitano', ['go'])"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"c = Context(*d)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: Lattice Pages: 1 -->\n",
"<svg width=\"2645pt\" height=\"424pt\"\n",
" viewBox=\"0.00 0.00 2645.09 424.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 420)\">\n",
"<title>Lattice</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-420 2641.09,-420 2641.09,4 -4,4\"/>\n",
"<!-- c0 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>c0</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1167.09\" cy=\"-9\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>c1</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"862.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c1&#45;&gt;c0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>c1&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M867.82,-200.98C889.85,-178.15 972.13,-96.12 1056.09,-54 1093.15,-35.41 1140.05,-19.01 1158.8,-12.73\"/>\n",
"</g>\n",
"<!-- c1&#45;&gt;c1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>c1&#45;&gt;c1</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M868.47,-214.56C877.66,-220.94 889.09,-218.76 889.09,-208 889.09,-197.24 877.66,-195.06 868.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"860.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">isene</text>\n",
"</g>\n",
"<!-- c2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>c2</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1243.09\" cy=\"-100\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c2&#45;&gt;c0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>c2&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1240.13,-91.47C1236.21,-82.09 1228.66,-65.85 1219.09,-54 1205.57,-37.25 1184.99,-22.08 1174.23,-14.71\"/>\n",
"</g>\n",
"<!-- c2&#45;&gt;c2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>c2&#45;&gt;c2</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1251.66,-103.22C1260.39,-105.11 1270.09,-104.04 1270.09,-100 1270.09,-95.96 1260.39,-94.89 1251.66,-96.78\"/>\n",
"<text text-anchor=\"middle\" x=\"1248.98\" y=\"-78.32\" font-family=\"Times-Roman\" font-size=\"14.00\">eadwardus</text>\n",
"</g>\n",
"<!-- c2&#45;&gt;c2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>c2&#45;&gt;c2</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1251.05,-104.35C1266.74,-110.73 1288.09,-109.28 1288.09,-100 1288.09,-90.72 1266.74,-89.27 1251.05,-95.65\"/>\n",
"<text text-anchor=\"middle\" x=\"1246.14\" y=\"-114.82\" font-family=\"Times-Roman\" font-size=\"14.00\">forth</text>\n",
"</g>\n",
"<!-- c3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>c3</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"726.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c3&#45;&gt;c0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>c3&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M729.75,-199.73C743.56,-173.21 795.6,-81.82 870.09,-54 978.01,-13.69 1120.94,-10.19 1158.01,-9.98\"/>\n",
"</g>\n",
"<!-- c3&#45;&gt;c3 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>c3&#45;&gt;c3</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M732.47,-214.56C741.66,-220.94 753.09,-218.76 753.09,-208 753.09,-197.24 741.66,-195.06 732.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"724.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">srpablo</text>\n",
"</g>\n",
"<!-- c4 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>c4</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1487.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c4&#45;&gt;c0 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>c4&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1485.15,-199.19C1479.56,-178.39 1461.49,-121.16 1425.09,-91 1345.57,-25.09 1212.19,-12.64 1176.25,-10.44\"/>\n",
"</g>\n",
"<!-- c4&#45;&gt;c4 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>c4&#45;&gt;c4</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1493.47,-214.56C1502.66,-220.94 1514.09,-218.76 1514.09,-208 1514.09,-197.24 1502.66,-195.06 1493.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"1485.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">eriki</text>\n",
"</g>\n",
"<!-- c5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>c5</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"381.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c5&#45;&gt;c0 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>c5&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M388.4,-202.3C414.69,-185.52 507.2,-127.65 589.09,-91 635.02,-70.44 646.91,-64.64 696.09,-54 879.11,-14.41 1109.73,-10.44 1157.99,-10.04\"/>\n",
"</g>\n",
"<!-- c5&#45;&gt;c5 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>c5&#45;&gt;c5</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M387.47,-214.56C396.66,-220.94 408.09,-218.76 408.09,-208 408.09,-197.24 396.66,-195.06 387.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"379.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">mitchartemis</text>\n",
"</g>\n",
"<!-- c6 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>c6</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"172.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c6&#45;&gt;c0 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>c6&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M180.35,-203.48C216.55,-188.13 365.14,-126.35 492.09,-91 757.02,-17.24 1098.86,-10.65 1158.14,-10.06\"/>\n",
"</g>\n",
"<!-- c6&#45;&gt;c6 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>c6&#45;&gt;c6</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M178.47,-214.56C187.66,-220.94 199.09,-218.76 199.09,-208 199.09,-197.24 187.66,-195.06 178.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"170.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">cschorn</text>\n",
"</g>\n",
"<!-- c7 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>c7</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"237.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c7&#45;&gt;c0 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>c7&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M245.19,-203.66C280.69,-189.1 426.29,-130.07 549.09,-91 610.01,-71.62 625.15,-65.19 688.09,-54 875.56,-20.68 1109.05,-11.81 1157.88,-10.27\"/>\n",
"</g>\n",
"<!-- c7&#45;&gt;c7 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>c7&#45;&gt;c7</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M243.47,-214.56C252.66,-220.94 264.09,-218.76 264.09,-208 264.09,-197.24 252.66,-195.06 243.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"235.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">friendlysock</text>\n",
"</g>\n",
"<!-- c8 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>c8</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"558.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c8&#45;&gt;c0 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>c8&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M561.97,-199.62C572.62,-179.86 604.18,-125.01 643.09,-91 669,-68.36 678.2,-64.08 711.09,-54 799.31,-26.98 1102.14,-12.8 1158.15,-10.38\"/>\n",
"</g>\n",
"<!-- c8&#45;&gt;c8 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>c8&#45;&gt;c8</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M564.47,-214.56C573.66,-220.94 585.09,-218.76 585.09,-208 585.09,-197.24 573.66,-195.06 564.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"556.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">devth</text>\n",
"</g>\n",
"<!-- c9 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>c9</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"842.09\" cy=\"-100\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c9&#45;&gt;c0 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>c9&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M846.36,-91.84C852.87,-81.59 866.33,-63 883.09,-54 932.65,-27.39 1115.26,-13.52 1158.07,-10.59\"/>\n",
"</g>\n",
"<!-- c9&#45;&gt;c9 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>c9&#45;&gt;c9</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M849.28,-105.78C858.33,-110.44 869.09,-108.51 869.09,-100 869.09,-91.49 858.33,-89.56 849.28,-94.22\"/>\n",
"<text text-anchor=\"middle\" x=\"843.29\" y=\"-76.76\" font-family=\"Times-Roman\" font-size=\"14.00\">erkin</text>\n",
"</g>\n",
"<!-- c10 -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>c10</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1069.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c10&#45;&gt;c0 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>c10&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1072.82,-199.52C1088.34,-168.31 1147.84,-48.71 1163.37,-17.49\"/>\n",
"</g>\n",
"<!-- c10&#45;&gt;c10 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>c10&#45;&gt;c10</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1075.47,-214.56C1084.66,-220.94 1096.09,-218.76 1096.09,-208 1096.09,-197.24 1084.66,-195.06 1075.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"1067.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">zem</text>\n",
"</g>\n",
"<!-- c11 -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>c11</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1335.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c11&#45;&gt;c0 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>c11&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1328.23,-202.1C1309.86,-188.75 1258.65,-149.95 1225.09,-109 1199.84,-78.18 1178.65,-35.09 1170.58,-17.72\"/>\n",
"</g>\n",
"<!-- c11&#45;&gt;c11 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>c11&#45;&gt;c11</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1341.47,-214.56C1350.66,-220.94 1362.09,-218.76 1362.09,-208 1362.09,-197.24 1350.66,-195.06 1341.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"1333.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">varjag</text>\n",
"</g>\n",
"<!-- c12 -->\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>c12</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1930.09\" cy=\"-100\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c12&#45;&gt;c0 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>c12&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1921.26,-97.97C1842.11,-88.74 1255.86,-20.35 1176.07,-11.05\"/>\n",
"</g>\n",
"<!-- c12&#45;&gt;c12 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>c12&#45;&gt;c12</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1938.66,-103.22C1947.39,-105.11 1957.09,-104.04 1957.09,-100 1957.09,-95.96 1947.39,-94.89 1938.66,-96.78\"/>\n",
"<text text-anchor=\"middle\" x=\"1935.98\" y=\"-78.32\" font-family=\"Times-Roman\" font-size=\"14.00\">colindean</text>\n",
"</g>\n",
"<!-- c12&#45;&gt;c12 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>c12&#45;&gt;c12</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1938.05,-104.35C1953.74,-110.73 1975.09,-109.28 1975.09,-100 1975.09,-90.72 1953.74,-89.27 1938.05,-95.65\"/>\n",
"<text text-anchor=\"middle\" x=\"1933.14\" y=\"-114.82\" font-family=\"Times-Roman\" font-size=\"14.00\">scala</text>\n",
"</g>\n",
"<!-- c13 -->\n",
"<g id=\"node14\" class=\"node\">\n",
"<title>c13</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1224.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c13&#45;&gt;c0 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>c13&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1218.09,-201.06C1210.48,-193.13 1197.56,-178.31 1191.09,-163 1169.13,-110.98 1167.05,-41.35 1167.01,-18.01\"/>\n",
"</g>\n",
"<!-- c13&#45;&gt;c13 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>c13&#45;&gt;c13</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1230.47,-214.56C1239.66,-220.94 1251.09,-218.76 1251.09,-208 1251.09,-197.24 1239.66,-195.06 1230.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"1222.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">c&#45;cube</text>\n",
"</g>\n",
"<!-- c14 -->\n",
"<g id=\"node15\" class=\"node\">\n",
"<title>c14</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1389.09\" cy=\"-100\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c14&#45;&gt;c0 -->\n",
"<g id=\"edge30\" class=\"edge\">\n",
"<title>c14&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1380.93,-95.73C1346.04,-81.74 1209.67,-27.07 1175.1,-13.21\"/>\n",
"</g>\n",
"<!-- c14&#45;&gt;c14 -->\n",
"<g id=\"edge29\" class=\"edge\">\n",
"<title>c14&#45;&gt;c14</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1396.28,-105.78C1405.33,-110.44 1416.09,-108.51 1416.09,-100 1416.09,-91.49 1405.33,-89.56 1396.28,-94.22\"/>\n",
"<text text-anchor=\"middle\" x=\"1390.29\" y=\"-76.76\" font-family=\"Times-Roman\" font-size=\"14.00\">ashn</text>\n",
"</g>\n",
"<!-- c15 -->\n",
"<g id=\"node16\" class=\"node\">\n",
"<title>c15</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"465.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c15&#45;&gt;c0 -->\n",
"<g id=\"edge32\" class=\"edge\">\n",
"<title>c15&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M471.57,-201.37C492.28,-183.55 559.13,-127.44 621.09,-91 655.56,-70.73 664.45,-64.25 703.09,-54 881.42,-6.71 1110.15,-8.75 1158.06,-9.77\"/>\n",
"</g>\n",
"<!-- c15&#45;&gt;c15 -->\n",
"<g id=\"edge31\" class=\"edge\">\n",
"<title>c15&#45;&gt;c15</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M471.47,-214.56C480.66,-220.94 492.09,-218.76 492.09,-208 492.09,-197.24 480.66,-195.06 471.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"463.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">yumaikas</text>\n",
"</g>\n",
"<!-- c16 -->\n",
"<g id=\"node17\" class=\"node\">\n",
"<title>c16</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"12.09\" cy=\"-262\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c16&#45;&gt;c0 -->\n",
"<g id=\"edge35\" class=\"edge\">\n",
"<title>c16&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M18.09,-254.91C32.53,-239.56 68.09,-197.46 68.09,-155 68.09,-155 68.09,-155 68.09,-99 68.09,-41.03 1052.21,-13.08 1157.92,-10.24\"/>\n",
"</g>\n",
"<!-- c16&#45;&gt;c16 -->\n",
"<g id=\"edge33\" class=\"edge\">\n",
"<title>c16&#45;&gt;c16</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M20.39,-265.87C29.18,-268.3 39.09,-267.01 39.09,-262 39.09,-256.99 29.18,-255.7 20.39,-258.13\"/>\n",
"<text text-anchor=\"middle\" x=\"17\" y=\"-239.81\" font-family=\"Times-Roman\" font-size=\"14.00\">twee</text>\n",
"</g>\n",
"<!-- c16&#45;&gt;c16 -->\n",
"<g id=\"edge34\" class=\"edge\">\n",
"<title>c16&#45;&gt;c16</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M19.62,-267.12C35.34,-275.2 57.09,-273.5 57.09,-262 57.09,-250.5 35.34,-248.8 19.62,-256.88\"/>\n",
"<text text-anchor=\"middle\" x=\"13.6\" y=\"-277.16\" font-family=\"Times-Roman\" font-size=\"14.00\">ada</text>\n",
"</g>\n",
"<!-- c17 -->\n",
"<g id=\"node18\" class=\"node\">\n",
"<title>c17</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"814.09\" cy=\"-154\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c17&#45;&gt;c0 -->\n",
"<g id=\"edge38\" class=\"edge\">\n",
"<title>c17&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M813.47,-144.67C812.94,-132.05 813.54,-107.81 824.09,-91 839.37,-66.67 850.41,-64.66 877.09,-54 981.13,-12.44 1120.53,-9.82 1157.67,-9.9\"/>\n",
"</g>\n",
"<!-- c17&#45;&gt;c17 -->\n",
"<g id=\"edge36\" class=\"edge\">\n",
"<title>c17&#45;&gt;c17</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M822.39,-157.87C831.18,-160.3 841.09,-159.01 841.09,-154 841.09,-148.99 831.18,-147.7 822.39,-150.13\"/>\n",
"<text text-anchor=\"middle\" x=\"819\" y=\"-131.81\" font-family=\"Times-Roman\" font-size=\"14.00\">yawaramin</text>\n",
"</g>\n",
"<!-- c17&#45;&gt;c17 -->\n",
"<g id=\"edge37\" class=\"edge\">\n",
"<title>c17&#45;&gt;c17</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M821.62,-159.12C837.34,-167.2 859.09,-165.5 859.09,-154 859.09,-142.5 837.34,-140.8 821.62,-148.88\"/>\n",
"<text text-anchor=\"middle\" x=\"815.6\" y=\"-169.16\" font-family=\"Times-Roman\" font-size=\"14.00\">reason</text>\n",
"</g>\n",
"<!-- c18 -->\n",
"<g id=\"node19\" class=\"node\">\n",
"<title>c18</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"661.09\" cy=\"-100\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c18&#45;&gt;c0 -->\n",
"<g id=\"edge40\" class=\"edge\">\n",
"<title>c18&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M666.55,-92.71C675.78,-82.55 695.61,-62.76 717.09,-54 801.23,-19.69 1101.19,-11.45 1157.83,-10.19\"/>\n",
"</g>\n",
"<!-- c18&#45;&gt;c18 -->\n",
"<g id=\"edge39\" class=\"edge\">\n",
"<title>c18&#45;&gt;c18</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M668.28,-105.78C677.33,-110.44 688.09,-108.51 688.09,-100 688.09,-91.49 677.33,-89.56 668.28,-94.22\"/>\n",
"<text text-anchor=\"middle\" x=\"662.29\" y=\"-76.76\" font-family=\"Times-Roman\" font-size=\"14.00\">skatkov</text>\n",
"</g>\n",
"<!-- c19 -->\n",
"<g id=\"node20\" class=\"node\">\n",
"<title>c19</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2100.09\" cy=\"-100\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c19&#45;&gt;c0 -->\n",
"<g id=\"edge42\" class=\"edge\">\n",
"<title>c19&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2091.16,-98.15C2001.55,-89.6 1266.27,-19.46 1176.14,-10.86\"/>\n",
"</g>\n",
"<!-- c19&#45;&gt;c19 -->\n",
"<g id=\"edge41\" class=\"edge\">\n",
"<title>c19&#45;&gt;c19</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2107.28,-105.78C2116.33,-110.44 2127.09,-108.51 2127.09,-100 2127.09,-91.49 2116.33,-89.56 2107.28,-94.22\"/>\n",
"<text text-anchor=\"middle\" x=\"2101.29\" y=\"-76.76\" font-family=\"Times-Roman\" font-size=\"14.00\">jrick</text>\n",
"</g>\n",
"<!-- c20 -->\n",
"<g id=\"node21\" class=\"node\">\n",
"<title>c20</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2215.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c20&#45;&gt;c0 -->\n",
"<g id=\"edge45\" class=\"edge\">\n",
"<title>c20&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2212.53,-199.3C2204.9,-177.74 2180.08,-116.66 2136.09,-91 2048.33,-39.8 1268.65,-13.26 1176.07,-10.28\"/>\n",
"</g>\n",
"<!-- c20&#45;&gt;c20 -->\n",
"<g id=\"edge43\" class=\"edge\">\n",
"<title>c20&#45;&gt;c20</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2223.39,-211.87C2232.18,-214.3 2242.09,-213.01 2242.09,-208 2242.09,-202.99 2232.18,-201.7 2223.39,-204.13\"/>\n",
"<text text-anchor=\"middle\" x=\"2220\" y=\"-185.81\" font-family=\"Times-Roman\" font-size=\"14.00\">felixyz</text>\n",
"</g>\n",
"<!-- c20&#45;&gt;c20 -->\n",
"<g id=\"edge44\" class=\"edge\">\n",
"<title>c20&#45;&gt;c20</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2222.62,-213.12C2238.34,-221.2 2260.09,-219.5 2260.09,-208 2260.09,-196.5 2238.34,-194.8 2222.62,-202.88\"/>\n",
"<text text-anchor=\"middle\" x=\"2216.6\" y=\"-223.16\" font-family=\"Times-Roman\" font-size=\"14.00\">haskell f#</text>\n",
"</g>\n",
"<!-- c21 -->\n",
"<g id=\"node22\" class=\"node\">\n",
"<title>c21</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1615.09\" cy=\"-100\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c21&#45;&gt;c0 -->\n",
"<g id=\"edge47\" class=\"edge\">\n",
"<title>c21&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1607.15,-95.3C1588.2,-86.64 1538.68,-64.95 1495.09,-54 1371.11,-22.86 1214.87,-12.61 1176.1,-10.46\"/>\n",
"</g>\n",
"<!-- c21&#45;&gt;c21 -->\n",
"<g id=\"edge46\" class=\"edge\">\n",
"<title>c21&#45;&gt;c21</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1622.28,-105.78C1631.33,-110.44 1642.09,-108.51 1642.09,-100 1642.09,-91.49 1631.33,-89.56 1622.28,-94.22\"/>\n",
"<text text-anchor=\"middle\" x=\"1616.29\" y=\"-76.76\" font-family=\"Times-Roman\" font-size=\"14.00\">snej</text>\n",
"</g>\n",
"<!-- c22 -->\n",
"<g id=\"node23\" class=\"node\">\n",
"<title>c22</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2572.09\" cy=\"-100\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c22&#45;&gt;c0 -->\n",
"<g id=\"edge49\" class=\"edge\">\n",
"<title>c22&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2563.45,-97.42C2526.86,-90.8 2381.08,-65.13 2260.09,-54 1810.95,-12.68 1254.44,-10.16 1176.36,-10.01\"/>\n",
"</g>\n",
"<!-- c22&#45;&gt;c22 -->\n",
"<g id=\"edge48\" class=\"edge\">\n",
"<title>c22&#45;&gt;c22</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2579.28,-105.78C2588.33,-110.44 2599.09,-108.51 2599.09,-100 2599.09,-91.49 2588.33,-89.56 2579.28,-94.22\"/>\n",
"<text text-anchor=\"middle\" x=\"2573.29\" y=\"-76.76\" font-family=\"Times-Roman\" font-size=\"14.00\">orib</text>\n",
"</g>\n",
"<!-- c23 -->\n",
"<g id=\"node24\" class=\"node\">\n",
"<title>c23</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1315.09\" cy=\"-100\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c23&#45;&gt;c0 -->\n",
"<g id=\"edge52\" class=\"edge\">\n",
"<title>c23&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1307.55,-94.46C1282.1,-79.16 1199.6,-29.55 1174.45,-14.42\"/>\n",
"</g>\n",
"<!-- c23&#45;&gt;c23 -->\n",
"<g id=\"edge50\" class=\"edge\">\n",
"<title>c23&#45;&gt;c23</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1323.66,-103.22C1332.39,-105.11 1342.09,-104.04 1342.09,-100 1342.09,-95.96 1332.39,-94.89 1323.66,-96.78\"/>\n",
"<text text-anchor=\"middle\" x=\"1320.98\" y=\"-78.32\" font-family=\"Times-Roman\" font-size=\"14.00\">vaelatern</text>\n",
"</g>\n",
"<!-- c23&#45;&gt;c23 -->\n",
"<g id=\"edge51\" class=\"edge\">\n",
"<title>c23&#45;&gt;c23</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1323.05,-104.35C1338.74,-110.73 1360.09,-109.28 1360.09,-100 1360.09,-90.72 1338.74,-89.27 1323.05,-95.65\"/>\n",
"<text text-anchor=\"middle\" x=\"1318.14\" y=\"-114.82\" font-family=\"Times-Roman\" font-size=\"14.00\">lua</text>\n",
"</g>\n",
"<!-- c24 -->\n",
"<g id=\"node25\" class=\"node\">\n",
"<title>c24</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"963.09\" cy=\"-154\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c24&#45;&gt;c0 -->\n",
"<g id=\"edge55\" class=\"edge\">\n",
"<title>c24&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M968.04,-146.32C981.23,-128.92 1018.98,-81.7 1060.09,-54 1093.24,-31.67 1139.51,-17.47 1158.47,-12.25\"/>\n",
"</g>\n",
"<!-- c24&#45;&gt;c24 -->\n",
"<g id=\"edge53\" class=\"edge\">\n",
"<title>c24&#45;&gt;c24</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M971.39,-157.87C980.18,-160.3 990.09,-159.01 990.09,-154 990.09,-148.99 980.18,-147.7 971.39,-150.13\"/>\n",
"<text text-anchor=\"middle\" x=\"968\" y=\"-131.81\" font-family=\"Times-Roman\" font-size=\"14.00\">pistos</text>\n",
"</g>\n",
"<!-- c24&#45;&gt;c24 -->\n",
"<g id=\"edge54\" class=\"edge\">\n",
"<title>c24&#45;&gt;c24</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M970.62,-159.12C986.34,-167.2 1008.09,-165.5 1008.09,-154 1008.09,-142.5 986.34,-140.8 970.62,-148.88\"/>\n",
"<text text-anchor=\"middle\" x=\"964.6\" y=\"-169.16\" font-family=\"Times-Roman\" font-size=\"14.00\">js</text>\n",
"</g>\n",
"<!-- c25 -->\n",
"<g id=\"node26\" class=\"node\">\n",
"<title>c25</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2287.09\" cy=\"-100\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c25&#45;&gt;c0 -->\n",
"<g id=\"edge57\" class=\"edge\">\n",
"<title>c25&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2281.57,-92.57C2272.21,-82.21 2252.08,-62.15 2230.09,-54 2125.63,-15.3 1274.02,-10.46 1176.23,-10.04\"/>\n",
"</g>\n",
"<!-- c25&#45;&gt;c25 -->\n",
"<g id=\"edge56\" class=\"edge\">\n",
"<title>c25&#45;&gt;c25</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2294.28,-105.78C2303.33,-110.44 2314.09,-108.51 2314.09,-100 2314.09,-91.49 2303.33,-89.56 2294.28,-94.22\"/>\n",
"<text text-anchor=\"middle\" x=\"2288.29\" y=\"-76.76\" font-family=\"Times-Roman\" font-size=\"14.00\">mainecoon</text>\n",
"</g>\n",
"<!-- c26 -->\n",
"<g id=\"node27\" class=\"node\">\n",
"<title>c26</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1779.09\" cy=\"-100\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c26&#45;&gt;c0 -->\n",
"<g id=\"edge59\" class=\"edge\">\n",
"<title>c26&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1770.29,-97.4C1736.61,-91.31 1612.68,-69.15 1510.09,-54 1377.65,-34.43 1215.68,-15.57 1176.12,-11.03\"/>\n",
"</g>\n",
"<!-- c26&#45;&gt;c26 -->\n",
"<g id=\"edge58\" class=\"edge\">\n",
"<title>c26&#45;&gt;c26</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1786.28,-105.78C1795.33,-110.44 1806.09,-108.51 1806.09,-100 1806.09,-91.49 1795.33,-89.56 1786.28,-94.22\"/>\n",
"<text text-anchor=\"middle\" x=\"1780.29\" y=\"-76.76\" font-family=\"Times-Roman\" font-size=\"14.00\">franta</text>\n",
"</g>\n",
"<!-- c27 -->\n",
"<g id=\"node28\" class=\"node\">\n",
"<title>c27</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1389.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c27&#45;&gt;c2 -->\n",
"<g id=\"edge60\" class=\"edge\">\n",
"<title>c27&#45;&gt;c2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1382.05,-201.89C1357.33,-183.94 1274.67,-123.93 1250.06,-106.06\"/>\n",
"</g>\n",
"<!-- c27&#45;&gt;c14 -->\n",
"<g id=\"edge61\" class=\"edge\">\n",
"<title>c27&#45;&gt;c14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1389.09,-198.68C1389.09,-178.87 1389.09,-129.06 1389.09,-109.28\"/>\n",
"</g>\n",
"<!-- c28 -->\n",
"<g id=\"node29\" class=\"node\">\n",
"<title>c28</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2537.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c28&#45;&gt;c22 -->\n",
"<g id=\"edge63\" class=\"edge\">\n",
"<title>c28&#45;&gt;c22</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2539.72,-199.03C2546.24,-179.29 2563.08,-128.3 2569.53,-108.77\"/>\n",
"</g>\n",
"<!-- c28&#45;&gt;c28 -->\n",
"<g id=\"edge62\" class=\"edge\">\n",
"<title>c28&#45;&gt;c28</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2543.47,-214.56C2552.66,-220.94 2564.09,-218.76 2564.09,-208 2564.09,-197.24 2552.66,-195.06 2543.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"2535.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">pfcuttle</text>\n",
"</g>\n",
"<!-- c29 -->\n",
"<g id=\"node30\" class=\"node\">\n",
"<title>c29</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"123.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c29&#45;&gt;c5 -->\n",
"<g id=\"edge65\" class=\"edge\">\n",
"<title>c29&#45;&gt;c5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M130.79,-311.31C151.59,-301.39 210.74,-273.51 261.09,-253 302.6,-236.09 353.32,-218.47 372.87,-211.79\"/>\n",
"</g>\n",
"<!-- c29&#45;&gt;c6 -->\n",
"<g id=\"edge66\" class=\"edge\">\n",
"<title>c29&#45;&gt;c6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M118.62,-308.09C111.55,-296.21 99.5,-271.4 109.09,-253 120.69,-230.76 149.23,-217.46 163.57,-211.96\"/>\n",
"</g>\n",
"<!-- c29&#45;&gt;c29 -->\n",
"<g id=\"edge64\" class=\"edge\">\n",
"<title>c29&#45;&gt;c29</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M130.28,-321.78C139.33,-326.44 150.09,-324.51 150.09,-316 150.09,-307.49 139.33,-305.56 130.28,-310.22\"/>\n",
"<text text-anchor=\"middle\" x=\"124.29\" y=\"-331.84\" font-family=\"Times-Roman\" font-size=\"14.00\">php</text>\n",
"</g>\n",
"<!-- c30 -->\n",
"<g id=\"node31\" class=\"node\">\n",
"<title>c30</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1127.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c30&#45;&gt;c9 -->\n",
"<g id=\"edge67\" class=\"edge\">\n",
"<title>c30&#45;&gt;c9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1119.96,-202.08C1102.93,-190.53 1058.22,-161.42 1017.09,-145 955.99,-120.61 877.38,-106.63 851.1,-102.39\"/>\n",
"</g>\n",
"<!-- c30&#45;&gt;c14 -->\n",
"<g id=\"edge68\" class=\"edge\">\n",
"<title>c30&#45;&gt;c14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1135.22,-203.71C1174.26,-187.92 1342.23,-119.96 1381.06,-104.25\"/>\n",
"</g>\n",
"<!-- c31 -->\n",
"<g id=\"node32\" class=\"node\">\n",
"<title>c31</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"651.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c31&#45;&gt;c9 -->\n",
"<g id=\"edge69\" class=\"edge\">\n",
"<title>c31&#45;&gt;c9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M658.82,-202.71C689.66,-185.59 803.84,-122.23 834.48,-105.22\"/>\n",
"</g>\n",
"<!-- c31&#45;&gt;c18 -->\n",
"<g id=\"edge70\" class=\"edge\">\n",
"<title>c31&#45;&gt;c18</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M651.88,-198.68C653.76,-178.77 658.49,-128.56 660.34,-108.99\"/>\n",
"</g>\n",
"<!-- c32 -->\n",
"<g id=\"node33\" class=\"node\">\n",
"<title>c32</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1699.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c32&#45;&gt;c26 -->\n",
"<g id=\"edge72\" class=\"edge\">\n",
"<title>c32&#45;&gt;c26</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1704.1,-200.37C1718.46,-181.33 1759.73,-126.66 1774.09,-107.63\"/>\n",
"</g>\n",
"<!-- c32&#45;&gt;c32 -->\n",
"<g id=\"edge71\" class=\"edge\">\n",
"<title>c32&#45;&gt;c32</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1705.47,-214.56C1714.66,-220.94 1726.09,-218.76 1726.09,-208 1726.09,-197.24 1714.66,-195.06 1705.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"1697.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">qznc</text>\n",
"</g>\n",
"<!-- c33 -->\n",
"<g id=\"node34\" class=\"node\">\n",
"<title>c33</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2026.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c33&#45;&gt;c12 -->\n",
"<g id=\"edge73\" class=\"edge\">\n",
"<title>c33&#45;&gt;c12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2020.38,-200.69C2003.26,-181.79 1952.58,-125.83 1935.66,-107.15\"/>\n",
"</g>\n",
"<!-- c33&#45;&gt;c25 -->\n",
"<g id=\"edge74\" class=\"edge\">\n",
"<title>c33&#45;&gt;c25</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2034.13,-203.36C2037.23,-201.97 2040.82,-200.39 2044.09,-199 2135.82,-160.13 2248.44,-116.05 2279.08,-104.11\"/>\n",
"</g>\n",
"<!-- c34 -->\n",
"<g id=\"node35\" class=\"node\">\n",
"<title>c34</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2420.09\" cy=\"-100\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c34&#45;&gt;c0 -->\n",
"<g id=\"edge76\" class=\"edge\">\n",
"<title>c34&#45;&gt;c0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2411.79,-96.21C2386.8,-87.96 2309.94,-63.65 2244.09,-54 2021.67,-21.39 1268.17,-11.24 1176.3,-10.11\"/>\n",
"</g>\n",
"<!-- c34&#45;&gt;c34 -->\n",
"<g id=\"edge75\" class=\"edge\">\n",
"<title>c34&#45;&gt;c34</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2427.28,-105.78C2436.33,-110.44 2447.09,-108.51 2447.09,-100 2447.09,-91.49 2436.33,-89.56 2427.28,-94.22\"/>\n",
"<text text-anchor=\"middle\" x=\"2421.29\" y=\"-76.76\" font-family=\"Times-Roman\" font-size=\"14.00\">ptman iswrong</text>\n",
"</g>\n",
"<!-- c35 -->\n",
"<g id=\"node36\" class=\"node\">\n",
"<title>c35</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2062.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c35&#45;&gt;c19 -->\n",
"<g id=\"edge78\" class=\"edge\">\n",
"<title>c35&#45;&gt;c19</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2064.94,-199.22C2068.16,-190.43 2073.53,-175.7 2078.09,-163 2085.12,-143.44 2093.28,-120.35 2097.4,-108.64\"/>\n",
"</g>\n",
"<!-- c35&#45;&gt;c35 -->\n",
"<g id=\"edge77\" class=\"edge\">\n",
"<title>c35&#45;&gt;c35</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2068.47,-214.56C2077.66,-220.94 2089.09,-218.76 2089.09,-208 2089.09,-197.24 2077.66,-195.06 2068.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"2060.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">dasifefe</text>\n",
"</g>\n",
"<!-- c36 -->\n",
"<g id=\"node37\" class=\"node\">\n",
"<title>c36</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1753.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c36&#45;&gt;c14 -->\n",
"<g id=\"edge79\" class=\"edge\">\n",
"<title>c36&#45;&gt;c14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1745.13,-203.17C1742.04,-201.76 1738.44,-200.21 1735.09,-199 1603.59,-151.43 1437.31,-112.08 1397.8,-102.98\"/>\n",
"</g>\n",
"<!-- c36&#45;&gt;c19 -->\n",
"<g id=\"edge80\" class=\"edge\">\n",
"<title>c36&#45;&gt;c19</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1761.67,-204.38C1809.57,-189.75 2043.57,-118.27 2091.5,-103.62\"/>\n",
"</g>\n",
"<!-- c37 -->\n",
"<g id=\"node38\" class=\"node\">\n",
"<title>c37</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"502.09\" cy=\"-262\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c37&#45;&gt;c18 -->\n",
"<g id=\"edge83\" class=\"edge\">\n",
"<title>c37&#45;&gt;c18</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M510.69,-258.77C528.22,-253.84 568.62,-240.57 594.09,-217 629.26,-184.46 651.21,-129.18 658.45,-108.82\"/>\n",
"</g>\n",
"<!-- c37&#45;&gt;c37 -->\n",
"<g id=\"edge81\" class=\"edge\">\n",
"<title>c37&#45;&gt;c37</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M510.39,-265.87C519.18,-268.3 529.09,-267.01 529.09,-262 529.09,-256.99 519.18,-255.7 510.39,-258.13\"/>\n",
"<text text-anchor=\"middle\" x=\"507\" y=\"-239.81\" font-family=\"Times-Roman\" font-size=\"14.00\">wolfadex</text>\n",
"</g>\n",
"<!-- c37&#45;&gt;c37 -->\n",
"<g id=\"edge82\" class=\"edge\">\n",
"<title>c37&#45;&gt;c37</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M509.62,-267.12C525.34,-275.2 547.09,-273.5 547.09,-262 547.09,-250.5 525.34,-248.8 509.62,-256.88\"/>\n",
"<text text-anchor=\"middle\" x=\"503.6\" y=\"-277.16\" font-family=\"Times-Roman\" font-size=\"14.00\">elm</text>\n",
"</g>\n",
"<!-- c38 -->\n",
"<g id=\"node39\" class=\"node\">\n",
"<title>c38</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1615.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c38&#45;&gt;c21 -->\n",
"<g id=\"edge85\" class=\"edge\">\n",
"<title>c38&#45;&gt;c21</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1615.09,-198.68C1615.09,-178.87 1615.09,-129.06 1615.09,-109.28\"/>\n",
"</g>\n",
"<!-- c38&#45;&gt;c38 -->\n",
"<g id=\"edge84\" class=\"edge\">\n",
"<title>c38&#45;&gt;c38</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1621.47,-214.56C1630.66,-220.94 1642.09,-218.76 1642.09,-208 1642.09,-197.24 1630.66,-195.06 1621.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"1613.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">eonil</text>\n",
"</g>\n",
"<!-- c39 -->\n",
"<g id=\"node40\" class=\"node\">\n",
"<title>c39</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2591.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c39&#45;&gt;c22 -->\n",
"<g id=\"edge86\" class=\"edge\">\n",
"<title>c39&#45;&gt;c22</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2589.67,-199.03C2586.14,-179.39 2577.08,-128.8 2573.54,-109.06\"/>\n",
"</g>\n",
"<!-- c39&#45;&gt;c25 -->\n",
"<g id=\"edge87\" class=\"edge\">\n",
"<title>c39&#45;&gt;c25</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2583.09,-203.26C2580,-201.86 2576.4,-200.3 2573.09,-199 2465.12,-156.6 2330.43,-114.37 2295.61,-103.62\"/>\n",
"</g>\n",
"<!-- c40 -->\n",
"<g id=\"node41\" class=\"node\">\n",
"<title>c40</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"655.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c40&#45;&gt;c1 -->\n",
"<g id=\"edge90\" class=\"edge\">\n",
"<title>c40&#45;&gt;c1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M662.96,-310.97C695.74,-294.18 821.42,-229.83 854.22,-213.03\"/>\n",
"</g>\n",
"<!-- c40&#45;&gt;c15 -->\n",
"<g id=\"edge91\" class=\"edge\">\n",
"<title>c40&#45;&gt;c15</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M645.84,-315.53C617.52,-316.61 531.08,-315.9 484.09,-271 468.95,-256.53 465.78,-230.36 465.18,-217.13\"/>\n",
"</g>\n",
"<!-- c40&#45;&gt;c40 -->\n",
"<g id=\"edge88\" class=\"edge\">\n",
"<title>c40&#45;&gt;c40</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M663.66,-319.22C672.39,-321.11 682.09,-320.04 682.09,-316 682.09,-311.96 672.39,-310.89 663.66,-312.78\"/>\n",
"<text text-anchor=\"middle\" x=\"660.98\" y=\"-294.32\" font-family=\"Times-Roman\" font-size=\"14.00\">WilhelmVonWeiner</text>\n",
"</g>\n",
"<!-- c40&#45;&gt;c40 -->\n",
"<g id=\"edge89\" class=\"edge\">\n",
"<title>c40&#45;&gt;c40</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M663.05,-320.35C678.74,-326.73 700.09,-325.28 700.09,-316 700.09,-306.72 678.74,-305.27 663.05,-311.65\"/>\n",
"<text text-anchor=\"middle\" x=\"658.14\" y=\"-330.82\" font-family=\"Times-Roman\" font-size=\"14.00\">nim</text>\n",
"</g>\n",
"<!-- c41 -->\n",
"<g id=\"node42\" class=\"node\">\n",
"<title>c41</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1367.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c41&#45;&gt;c1 -->\n",
"<g id=\"edge94\" class=\"edge\">\n",
"<title>c41&#45;&gt;c1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1359.18,-311.03C1356.09,-309.6 1352.48,-308.08 1349.09,-307 1160.91,-247.05 919.71,-215.94 870.92,-210.04\"/>\n",
"</g>\n",
"<!-- c41&#45;&gt;c20 -->\n",
"<g id=\"edge95\" class=\"edge\">\n",
"<title>c41&#45;&gt;c20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1375.88,-313.63C1386.55,-311.98 1405.13,-309.17 1421.09,-307 1745.47,-263.01 1827.28,-257.62 2152.09,-217 2171.35,-214.59 2193.9,-211.71 2206.12,-210.15\"/>\n",
"</g>\n",
"<!-- c41&#45;&gt;c41 -->\n",
"<g id=\"edge92\" class=\"edge\">\n",
"<title>c41&#45;&gt;c41</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1375.66,-319.22C1384.39,-321.11 1394.09,-320.04 1394.09,-316 1394.09,-311.96 1384.39,-310.89 1375.66,-312.78\"/>\n",
"<text text-anchor=\"middle\" x=\"1372.98\" y=\"-294.32\" font-family=\"Times-Roman\" font-size=\"14.00\">cos</text>\n",
"</g>\n",
"<!-- c41&#45;&gt;c41 -->\n",
"<g id=\"edge93\" class=\"edge\">\n",
"<title>c41&#45;&gt;c41</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1375.05,-320.35C1390.74,-326.73 1412.09,-325.28 1412.09,-316 1412.09,-306.72 1390.74,-305.27 1375.05,-311.65\"/>\n",
"<text text-anchor=\"middle\" x=\"1370.14\" y=\"-330.82\" font-family=\"Times-Roman\" font-size=\"14.00\">julia</text>\n",
"</g>\n",
"<!-- c42 -->\n",
"<g id=\"node43\" class=\"node\">\n",
"<title>c42</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1241.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c42&#45;&gt;c27 -->\n",
"<g id=\"edge97\" class=\"edge\">\n",
"<title>c42&#45;&gt;c27</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1249.86,-313.32C1269.54,-309.16 1317.92,-296.85 1349.09,-271 1367.63,-255.63 1380.51,-229.4 1386.05,-216.55\"/>\n",
"</g>\n",
"<!-- c42&#45;&gt;c30 -->\n",
"<g id=\"edge98\" class=\"edge\">\n",
"<title>c42&#45;&gt;c30</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1234.96,-309.3C1215.17,-290.9 1153.09,-233.17 1133.25,-214.73\"/>\n",
"</g>\n",
"<!-- c42&#45;&gt;c42 -->\n",
"<g id=\"edge96\" class=\"edge\">\n",
"<title>c42&#45;&gt;c42</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1248.28,-321.78C1257.33,-326.44 1268.09,-324.51 1268.09,-316 1268.09,-307.49 1257.33,-305.56 1248.28,-310.22\"/>\n",
"<text text-anchor=\"middle\" x=\"1242.29\" y=\"-331.84\" font-family=\"Times-Roman\" font-size=\"14.00\">scheme</text>\n",
"</g>\n",
"<!-- c43 -->\n",
"<g id=\"node44\" class=\"node\">\n",
"<title>c43</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1164.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c43&#45;&gt;c11 -->\n",
"<g id=\"edge101\" class=\"edge\">\n",
"<title>c43&#45;&gt;c11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1171.44,-310.45C1199.44,-293.09 1299.3,-231.19 1327.58,-213.66\"/>\n",
"</g>\n",
"<!-- c43&#45;&gt;c43 -->\n",
"<g id=\"edge99\" class=\"edge\">\n",
"<title>c43&#45;&gt;c43</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1172.66,-319.22C1181.39,-321.11 1191.09,-320.04 1191.09,-316 1191.09,-311.96 1181.39,-310.89 1172.66,-312.78\"/>\n",
"<text text-anchor=\"middle\" x=\"1169.98\" y=\"-294.32\" font-family=\"Times-Roman\" font-size=\"14.00\">jlarocco vindarel</text>\n",
"</g>\n",
"<!-- c43&#45;&gt;c43 -->\n",
"<g id=\"edge100\" class=\"edge\">\n",
"<title>c43&#45;&gt;c43</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1172.05,-320.35C1187.74,-326.73 1209.09,-325.28 1209.09,-316 1209.09,-306.72 1187.74,-305.27 1172.05,-311.65\"/>\n",
"<text text-anchor=\"middle\" x=\"1167.14\" y=\"-330.82\" font-family=\"Times-Roman\" font-size=\"14.00\">cl</text>\n",
"</g>\n",
"<!-- c44 -->\n",
"<g id=\"node45\" class=\"node\">\n",
"<title>c44</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2287.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c44&#45;&gt;c25 -->\n",
"<g id=\"edge103\" class=\"edge\">\n",
"<title>c44&#45;&gt;c25</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2287.09,-198.68C2287.09,-178.87 2287.09,-129.06 2287.09,-109.28\"/>\n",
"</g>\n",
"<!-- c44&#45;&gt;c44 -->\n",
"<g id=\"edge102\" class=\"edge\">\n",
"<title>c44&#45;&gt;c44</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2293.47,-214.56C2302.66,-220.94 2314.09,-218.76 2314.09,-208 2314.09,-197.24 2302.66,-195.06 2293.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"2285.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">ameo indirection</text>\n",
"</g>\n",
"<!-- c45 -->\n",
"<g id=\"node46\" class=\"node\">\n",
"<title>c45</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1295.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c45&#45;&gt;c4 -->\n",
"<g id=\"edge106\" class=\"edge\">\n",
"<title>c45&#45;&gt;c4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1302.86,-310.71C1333.87,-293.59 1448.64,-230.23 1479.44,-213.22\"/>\n",
"</g>\n",
"<!-- c45&#45;&gt;c13 -->\n",
"<g id=\"edge107\" class=\"edge\">\n",
"<title>c45&#45;&gt;c13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1293.54,-306.78C1290.9,-294.32 1284.66,-270.27 1273.09,-253 1261.64,-235.9 1242.07,-221.09 1231.46,-213.81\"/>\n",
"</g>\n",
"<!-- c45&#45;&gt;c45 -->\n",
"<g id=\"edge104\" class=\"edge\">\n",
"<title>c45&#45;&gt;c45</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1303.66,-319.22C1312.39,-321.11 1322.09,-320.04 1322.09,-316 1322.09,-311.96 1312.39,-310.89 1303.66,-312.78\"/>\n",
"<text text-anchor=\"middle\" x=\"1300.98\" y=\"-294.32\" font-family=\"Times-Roman\" font-size=\"14.00\">koreth</text>\n",
"</g>\n",
"<!-- c45&#45;&gt;c45 -->\n",
"<g id=\"edge105\" class=\"edge\">\n",
"<title>c45&#45;&gt;c45</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1303.05,-320.35C1318.74,-326.73 1340.09,-325.28 1340.09,-316 1340.09,-306.72 1318.74,-305.27 1303.05,-311.65\"/>\n",
"<text text-anchor=\"middle\" x=\"1298.14\" y=\"-330.82\" font-family=\"Times-Roman\" font-size=\"14.00\">kotlin</text>\n",
"</g>\n",
"<!-- c46 -->\n",
"<g id=\"node47\" class=\"node\">\n",
"<title>c46</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"969.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c46&#45;&gt;c5 -->\n",
"<g id=\"edge109\" class=\"edge\">\n",
"<title>c46&#45;&gt;c5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M961.21,-310.91C958.13,-309.46 954.52,-307.96 951.09,-307 832,-273.53 797.04,-291.78 675.09,-271 561.45,-251.64 424.91,-219.5 389.7,-211.07\"/>\n",
"</g>\n",
"<!-- c46&#45;&gt;c38 -->\n",
"<g id=\"edge110\" class=\"edge\">\n",
"<title>c46&#45;&gt;c38</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M977.65,-312.95C984.92,-311.24 995.66,-308.8 1005.09,-307 1248.98,-260.35 1550.6,-217.93 1606.1,-210.24\"/>\n",
"</g>\n",
"<!-- c46&#45;&gt;c46 -->\n",
"<g id=\"edge108\" class=\"edge\">\n",
"<title>c46&#45;&gt;c46</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M976.28,-321.78C985.33,-326.44 996.09,-324.51 996.09,-316 996.09,-307.49 985.33,-305.56 976.28,-310.22\"/>\n",
"<text text-anchor=\"middle\" x=\"970.29\" y=\"-331.84\" font-family=\"Times-Roman\" font-size=\"14.00\">swift</text>\n",
"</g>\n",
"<!-- c47 -->\n",
"<g id=\"node48\" class=\"node\">\n",
"<title>c47</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"229.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c47&#45;&gt;c6 -->\n",
"<g id=\"edge112\" class=\"edge\">\n",
"<title>c47&#45;&gt;c6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M225.18,-307.71C214.76,-288.35 186.48,-235.76 176.04,-216.34\"/>\n",
"</g>\n",
"<!-- c47&#45;&gt;c7 -->\n",
"<g id=\"edge113\" class=\"edge\">\n",
"<title>c47&#45;&gt;c7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M227.03,-306.94C224.29,-295.07 220.11,-272.24 223.09,-253 225.13,-239.85 230.42,-225.25 233.88,-216.62\"/>\n",
"</g>\n",
"<!-- c47&#45;&gt;c8 -->\n",
"<g id=\"edge114\" class=\"edge\">\n",
"<title>c47&#45;&gt;c8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M237.05,-311.78C261,-302.16 334.62,-273.02 397.09,-253 454.49,-234.6 524.9,-217.05 549.29,-211.12\"/>\n",
"</g>\n",
"<!-- c47&#45;&gt;c47 -->\n",
"<g id=\"edge111\" class=\"edge\">\n",
"<title>c47&#45;&gt;c47</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M236.28,-321.78C245.33,-326.44 256.09,-324.51 256.09,-316 256.09,-307.49 245.33,-305.56 236.28,-310.22\"/>\n",
"<text text-anchor=\"middle\" x=\"230.29\" y=\"-331.84\" font-family=\"Times-Roman\" font-size=\"14.00\">node</text>\n",
"</g>\n",
"<!-- c48 -->\n",
"<g id=\"node49\" class=\"node\">\n",
"<title>c48</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1107.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c48&#45;&gt;c10 -->\n",
"<g id=\"edge116\" class=\"edge\">\n",
"<title>c48&#45;&gt;c10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1104.36,-307.38C1097.38,-287.91 1078.97,-236.54 1071.9,-216.84\"/>\n",
"</g>\n",
"<!-- c48&#45;&gt;c30 -->\n",
"<g id=\"edge117\" class=\"edge\">\n",
"<title>c48&#45;&gt;c30</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1108.6,-307.03C1112.3,-287.39 1121.85,-236.8 1125.57,-217.06\"/>\n",
"</g>\n",
"<!-- c48&#45;&gt;c48 -->\n",
"<g id=\"edge115\" class=\"edge\">\n",
"<title>c48&#45;&gt;c48</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1114.28,-321.78C1123.33,-326.44 1134.09,-324.51 1134.09,-316 1134.09,-307.49 1123.33,-305.56 1114.28,-310.22\"/>\n",
"<text text-anchor=\"middle\" x=\"1108.29\" y=\"-331.84\" font-family=\"Times-Roman\" font-size=\"14.00\">racket</text>\n",
"</g>\n",
"<!-- c49 -->\n",
"<g id=\"node50\" class=\"node\">\n",
"<title>c49</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2628.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c49&#45;&gt;c22 -->\n",
"<g id=\"edge118\" class=\"edge\">\n",
"<title>c49&#45;&gt;c22</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2624.24,-199.71C2614.01,-180.35 2586.23,-127.76 2575.97,-108.34\"/>\n",
"</g>\n",
"<!-- c49&#45;&gt;c34 -->\n",
"<g id=\"edge119\" class=\"edge\">\n",
"<title>c49&#45;&gt;c34</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2620.19,-202.97C2587.25,-186.18 2460.96,-121.83 2428,-105.03\"/>\n",
"</g>\n",
"<!-- c50 -->\n",
"<g id=\"node51\" class=\"node\">\n",
"<title>c50</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1981.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c50&#45;&gt;c19 -->\n",
"<g id=\"edge120\" class=\"edge\">\n",
"<title>c50&#45;&gt;c19</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1987.49,-201.3C2008.15,-182.9 2072.96,-125.17 2093.66,-106.73\"/>\n",
"</g>\n",
"<!-- c50&#45;&gt;c21 -->\n",
"<g id=\"edge121\" class=\"edge\">\n",
"<title>c50&#45;&gt;c21</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1972.76,-204.59C1923.71,-190.38 1673.03,-117.78 1623.57,-103.46\"/>\n",
"</g>\n",
"<!-- c50&#45;&gt;c26 -->\n",
"<g id=\"edge122\" class=\"edge\">\n",
"<title>c50&#45;&gt;c26</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1974.17,-201.66C1959.12,-190.22 1922.07,-162.94 1888.09,-145 1852.18,-126.04 1806.24,-109.97 1787.56,-103.75\"/>\n",
"</g>\n",
"<!-- c51 -->\n",
"<g id=\"node52\" class=\"node\">\n",
"<title>c51</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"915.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c51&#45;&gt;c3 -->\n",
"<g id=\"edge124\" class=\"edge\">\n",
"<title>c51&#45;&gt;c3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M906.26,-313.32C884.86,-308.96 829.03,-295.85 789.09,-271 764.08,-255.43 741.15,-228.34 731.25,-215.77\"/>\n",
"</g>\n",
"<!-- c51&#45;&gt;c10 -->\n",
"<g id=\"edge125\" class=\"edge\">\n",
"<title>c51&#45;&gt;c10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M922.11,-310.17C947.77,-292.51 1036.31,-231.56 1062.03,-213.86\"/>\n",
"</g>\n",
"<!-- c51&#45;&gt;c13 -->\n",
"<g id=\"edge126\" class=\"edge\">\n",
"<title>c51&#45;&gt;c13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M923.36,-312.16C967.12,-297.15 1171.48,-227.05 1215.66,-211.89\"/>\n",
"</g>\n",
"<!-- c51&#45;&gt;c17 -->\n",
"<g id=\"edge127\" class=\"edge\">\n",
"<title>c51&#45;&gt;c17</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M910.11,-308.49C903.59,-299.94 891.86,-284.44 882.09,-271 864.84,-247.26 858.98,-242.29 844.09,-217 832.93,-198.04 822.32,-174.3 817.23,-162.45\"/>\n",
"</g>\n",
"<!-- c51&#45;&gt;c51 -->\n",
"<g id=\"edge123\" class=\"edge\">\n",
"<title>c51&#45;&gt;c51</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M922.28,-321.78C931.33,-326.44 942.09,-324.51 942.09,-316 942.09,-307.49 931.33,-305.56 922.28,-310.22\"/>\n",
"<text text-anchor=\"middle\" x=\"916.29\" y=\"-331.84\" font-family=\"Times-Roman\" font-size=\"14.00\">ocaml</text>\n",
"</g>\n",
"<!-- c52 -->\n",
"<g id=\"node53\" class=\"node\">\n",
"<title>c52</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"727.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c52&#45;&gt;c8 -->\n",
"<g id=\"edge129\" class=\"edge\">\n",
"<title>c52&#45;&gt;c8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M719.83,-310.45C692.16,-293.09 593.47,-231.19 565.52,-213.66\"/>\n",
"</g>\n",
"<!-- c52&#45;&gt;c23 -->\n",
"<g id=\"edge130\" class=\"edge\">\n",
"<title>c52&#45;&gt;c23</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M732.39,-308.57C748,-289.88 795.77,-234.68 844.09,-199 885.04,-168.76 896.41,-159.87 945.09,-145 1095.49,-99.06 1145.12,-149.44 1297.09,-109 1300.66,-108.05 1304.42,-106.48 1307.58,-104.98\"/>\n",
"</g>\n",
"<!-- c52&#45;&gt;c31 -->\n",
"<g id=\"edge131\" class=\"edge\">\n",
"<title>c52&#45;&gt;c31</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M719.7,-310.49C708.59,-303.37 687.58,-288.53 675.09,-271 662.77,-253.7 655.76,-229.24 652.8,-216.85\"/>\n",
"</g>\n",
"<!-- c52&#45;&gt;c52 -->\n",
"<g id=\"edge128\" class=\"edge\">\n",
"<title>c52&#45;&gt;c52</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M734.28,-321.78C743.33,-326.44 754.09,-324.51 754.09,-316 754.09,-307.49 743.33,-305.56 734.28,-310.22\"/>\n",
"<text text-anchor=\"middle\" x=\"728.29\" y=\"-331.84\" font-family=\"Times-Roman\" font-size=\"14.00\">clojure</text>\n",
"</g>\n",
"<!-- c53 -->\n",
"<g id=\"node54\" class=\"node\">\n",
"<title>c53</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1439.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c53&#45;&gt;c10 -->\n",
"<g id=\"edge134\" class=\"edge\">\n",
"<title>c53&#45;&gt;c10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1431.13,-311.16C1428.04,-309.75 1424.44,-308.2 1421.09,-307 1287.07,-258.85 1117.41,-219.78 1077.68,-210.9\"/>\n",
"</g>\n",
"<!-- c53&#45;&gt;c32 -->\n",
"<g id=\"edge135\" class=\"edge\">\n",
"<title>c53&#45;&gt;c32</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1447.16,-311.71C1485.9,-295.92 1652.59,-227.96 1691.12,-212.25\"/>\n",
"</g>\n",
"<!-- c53&#45;&gt;c53 -->\n",
"<g id=\"edge132\" class=\"edge\">\n",
"<title>c53&#45;&gt;c53</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1447.66,-319.22C1456.39,-321.11 1466.09,-320.04 1466.09,-316 1466.09,-311.96 1456.39,-310.89 1447.66,-312.78\"/>\n",
"<text text-anchor=\"middle\" x=\"1444.98\" y=\"-294.32\" font-family=\"Times-Roman\" font-size=\"14.00\">atilaneves</text>\n",
"</g>\n",
"<!-- c53&#45;&gt;c53 -->\n",
"<g id=\"edge133\" class=\"edge\">\n",
"<title>c53&#45;&gt;c53</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1447.05,-320.35C1462.74,-326.73 1484.09,-325.28 1484.09,-316 1484.09,-306.72 1462.74,-305.27 1447.05,-311.65\"/>\n",
"<text text-anchor=\"middle\" x=\"1442.14\" y=\"-330.82\" font-family=\"Times-Roman\" font-size=\"14.00\">d</text>\n",
"</g>\n",
"<!-- c54 -->\n",
"<g id=\"node55\" class=\"node\">\n",
"<title>c54</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2480.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c54&#45;&gt;c25 -->\n",
"<g id=\"edge137\" class=\"edge\">\n",
"<title>c54&#45;&gt;c25</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2472.29,-202.71C2441.12,-185.59 2325.75,-122.23 2294.78,-105.22\"/>\n",
"</g>\n",
"<!-- c54&#45;&gt;c34 -->\n",
"<g id=\"edge138\" class=\"edge\">\n",
"<title>c54&#45;&gt;c34</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2475.97,-199.71C2465.01,-180.35 2435.24,-127.76 2424.25,-108.34\"/>\n",
"</g>\n",
"<!-- c54&#45;&gt;c54 -->\n",
"<g id=\"edge136\" class=\"edge\">\n",
"<title>c54&#45;&gt;c54</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2486.47,-214.56C2495.66,-220.94 2507.09,-218.76 2507.09,-208 2507.09,-197.24 2495.66,-195.06 2486.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"2478.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">karsten</text>\n",
"</g>\n",
"<!-- c55 -->\n",
"<g id=\"node56\" class=\"node\">\n",
"<title>c55</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2116.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c55&#45;&gt;c19 -->\n",
"<g id=\"edge140\" class=\"edge\">\n",
"<title>c55&#45;&gt;c19</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2116.98,-198.9C2118.09,-186.98 2119.45,-164.08 2116.09,-145 2113.75,-131.71 2107.72,-117.16 2103.77,-108.56\"/>\n",
"</g>\n",
"<!-- c55&#45;&gt;c23 -->\n",
"<g id=\"edge141\" class=\"edge\">\n",
"<title>c55&#45;&gt;c23</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2108.57,-203.06C2105.41,-201.57 2101.65,-199.99 2098.09,-199 1784.37,-111.94 1693.82,-152.02 1371.09,-109 1354.35,-106.77 1334.83,-103.92 1323.82,-102.3\"/>\n",
"</g>\n",
"<!-- c55&#45;&gt;c55 -->\n",
"<g id=\"edge139\" class=\"edge\">\n",
"<title>c55&#45;&gt;c55</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2122.47,-214.56C2131.66,-220.94 2143.09,-218.76 2143.09,-208 2143.09,-197.24 2131.66,-195.06 2122.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"2114.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">farrokhi sergeyb</text>\n",
"</g>\n",
"<!-- c56 -->\n",
"<g id=\"node57\" class=\"node\">\n",
"<title>c56</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"315.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c56&#45;&gt;c15 -->\n",
"<g id=\"edge144\" class=\"edge\">\n",
"<title>c56&#45;&gt;c15</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M320.11,-308.48C329.71,-296.33 351.83,-269.9 375.09,-253 402.53,-233.07 440.39,-217.97 456.87,-211.91\"/>\n",
"</g>\n",
"<!-- c56&#45;&gt;c56 -->\n",
"<g id=\"edge142\" class=\"edge\">\n",
"<title>c56&#45;&gt;c56</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M323.66,-319.22C332.39,-321.11 342.09,-320.04 342.09,-316 342.09,-311.96 332.39,-310.89 323.66,-312.78\"/>\n",
"<text text-anchor=\"middle\" x=\"320.98\" y=\"-294.32\" font-family=\"Times-Roman\" font-size=\"14.00\">dbove dokka brb3</text>\n",
"</g>\n",
"<!-- c56&#45;&gt;c56 -->\n",
"<g id=\"edge143\" class=\"edge\">\n",
"<title>c56&#45;&gt;c56</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M323.05,-320.35C338.74,-326.73 360.09,-325.28 360.09,-316 360.09,-306.72 338.74,-305.27 323.05,-311.65\"/>\n",
"<text text-anchor=\"middle\" x=\"318.14\" y=\"-330.82\" font-family=\"Times-Roman\" font-size=\"14.00\">c#</text>\n",
"</g>\n",
"<!-- c57 -->\n",
"<g id=\"node58\" class=\"node\">\n",
"<title>c57</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2184.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c57&#45;&gt;c14 -->\n",
"<g id=\"edge146\" class=\"edge\">\n",
"<title>c57&#45;&gt;c14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2184.49,-306.83C2185.05,-285.64 2183.41,-228.52 2152.09,-199 2094.03,-144.26 1479.35,-106.31 1397.97,-101.51\"/>\n",
"</g>\n",
"<!-- c57&#45;&gt;c39 -->\n",
"<g id=\"edge147\" class=\"edge\">\n",
"<title>c57&#45;&gt;c39</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2192.75,-313.17C2201.22,-311.42 2214.5,-308.79 2226.09,-307 2359.24,-286.38 2405.44,-328.91 2527.09,-271 2554.19,-258.1 2576.97,-229.15 2586.42,-215.88\"/>\n",
"</g>\n",
"<!-- c57&#45;&gt;c44 -->\n",
"<g id=\"edge148\" class=\"edge\">\n",
"<title>c57&#45;&gt;c44</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2189.93,-309C2208.06,-290.34 2263.28,-233.5 2281.32,-214.94\"/>\n",
"</g>\n",
"<!-- c57&#45;&gt;c57 -->\n",
"<g id=\"edge145\" class=\"edge\">\n",
"<title>c57&#45;&gt;c57</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2191.28,-321.78C2200.33,-326.44 2211.09,-324.51 2211.09,-316 2211.09,-307.49 2200.33,-305.56 2191.28,-310.22\"/>\n",
"<text text-anchor=\"middle\" x=\"2185.29\" y=\"-331.84\" font-family=\"Times-Roman\" font-size=\"14.00\">typescript</text>\n",
"</g>\n",
"<!-- c58 -->\n",
"<g id=\"node59\" class=\"node\">\n",
"<title>c58</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"389.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c58&#45;&gt;c3 -->\n",
"<g id=\"edge150\" class=\"edge\">\n",
"<title>c58&#45;&gt;c3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M395.49,-309.49C410.1,-297.22 447.5,-267.58 484.09,-253 506.41,-244.11 676.44,-216.86 717.29,-210.39\"/>\n",
"</g>\n",
"<!-- c58&#45;&gt;c5 -->\n",
"<g id=\"edge151\" class=\"edge\">\n",
"<title>c58&#45;&gt;c5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M385.88,-307.38C382.42,-298.75 377.13,-284.15 375.09,-271 372.11,-251.76 376.29,-228.93 379.03,-217.06\"/>\n",
"</g>\n",
"<!-- c58&#45;&gt;c7 -->\n",
"<g id=\"edge152\" class=\"edge\">\n",
"<title>c58&#45;&gt;c7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M382.17,-310.17C356.85,-292.51 269.45,-231.56 244.06,-213.86\"/>\n",
"</g>\n",
"<!-- c58&#45;&gt;c31 -->\n",
"<g id=\"edge153\" class=\"edge\">\n",
"<title>c58&#45;&gt;c31</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M389.79,-306.7C391.38,-293.22 396.56,-266.7 413.09,-253 422.21,-245.44 599.93,-217.06 642.15,-210.4\"/>\n",
"</g>\n",
"<!-- c58&#45;&gt;c58 -->\n",
"<g id=\"edge149\" class=\"edge\">\n",
"<title>c58&#45;&gt;c58</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M396.28,-321.78C405.33,-326.44 416.09,-324.51 416.09,-316 416.09,-307.49 405.33,-305.56 396.28,-310.22\"/>\n",
"<text text-anchor=\"middle\" x=\"390.29\" y=\"-331.84\" font-family=\"Times-Roman\" font-size=\"14.00\">elixir</text>\n",
"</g>\n",
"<!-- c59 -->\n",
"<g id=\"node60\" class=\"node\">\n",
"<title>c59</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1023.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c59&#45;&gt;c1 -->\n",
"<g id=\"edge155\" class=\"edge\">\n",
"<title>c59&#45;&gt;c1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1015.09,-311.28C1011.99,-309.88 1008.4,-308.32 1005.09,-307 960.43,-289.22 940.99,-300.59 903.09,-271 883.97,-256.07 870.82,-229.63 865.19,-216.64\"/>\n",
"</g>\n",
"<!-- c59&#45;&gt;c10 -->\n",
"<g id=\"edge156\" class=\"edge\">\n",
"<title>c59&#45;&gt;c10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1026.4,-307.38C1034.89,-287.82 1057.36,-236.04 1065.81,-216.55\"/>\n",
"</g>\n",
"<!-- c59&#45;&gt;c18 -->\n",
"<g id=\"edge157\" class=\"edge\">\n",
"<title>c59&#45;&gt;c18</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1015.12,-311.18C1012.03,-309.77 1008.43,-308.22 1005.09,-307 951.62,-287.39 936.63,-287.44 882.09,-271 804.57,-247.63 767.7,-271.8 708.09,-217 691.22,-201.49 670.23,-132.74 663.38,-109.05\"/>\n",
"</g>\n",
"<!-- c59&#45;&gt;c24 -->\n",
"<g id=\"edge158\" class=\"edge\">\n",
"<title>c59&#45;&gt;c24</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1020.2,-307.28C1010.04,-280.19 976.07,-189.61 965.96,-162.64\"/>\n",
"</g>\n",
"<!-- c59&#45;&gt;c33 -->\n",
"<g id=\"edge159\" class=\"edge\">\n",
"<title>c59&#45;&gt;c33</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1032.05,-313.85C1044.74,-312.24 1068.67,-309.25 1089.09,-307 1493.07,-262.54 1600.25,-295.08 1999.09,-217 2005.43,-215.76 2012.41,-213.67 2017.68,-211.94\"/>\n",
"</g>\n",
"<!-- c59&#45;&gt;c59 -->\n",
"<g id=\"edge154\" class=\"edge\">\n",
"<title>c59&#45;&gt;c59</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1030.28,-321.78C1039.33,-326.44 1050.09,-324.51 1050.09,-316 1050.09,-307.49 1039.33,-305.56 1030.28,-310.22\"/>\n",
"<text text-anchor=\"middle\" x=\"1024.29\" y=\"-331.84\" font-family=\"Times-Roman\" font-size=\"14.00\">ruby</text>\n",
"</g>\n",
"<!-- c60 -->\n",
"<g id=\"node61\" class=\"node\">\n",
"<title>c60</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2381.09\" cy=\"-208\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c60&#45;&gt;c19 -->\n",
"<g id=\"edge161\" class=\"edge\">\n",
"<title>c60&#45;&gt;c19</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2372.99,-203.94C2332.13,-188.53 2149.16,-119.51 2108.23,-104.07\"/>\n",
"</g>\n",
"<!-- c60&#45;&gt;c34 -->\n",
"<g id=\"edge162\" class=\"edge\">\n",
"<title>c60&#45;&gt;c34</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2383.9,-199.38C2391.06,-179.91 2409.96,-128.54 2417.21,-108.84\"/>\n",
"</g>\n",
"<!-- c60&#45;&gt;c60 -->\n",
"<g id=\"edge160\" class=\"edge\">\n",
"<title>c60&#45;&gt;c60</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2387.47,-214.56C2396.66,-220.94 2408.09,-218.76 2408.09,-208 2408.09,-197.24 2396.66,-195.06 2387.47,-201.44\"/>\n",
"<text text-anchor=\"middle\" x=\"2379.84\" y=\"-184.82\" font-family=\"Times-Roman\" font-size=\"14.00\">gsquire gregf sneakycrow</text>\n",
"</g>\n",
"<!-- c61 -->\n",
"<g id=\"node62\" class=\"node\">\n",
"<title>c61</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1827.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c61&#45;&gt;c4 -->\n",
"<g id=\"edge165\" class=\"edge\">\n",
"<title>c61&#45;&gt;c4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1818.98,-311.58C1815.37,-310.1 1811.04,-308.39 1807.09,-307 1684.89,-263.93 1532.77,-221.53 1495.58,-211.32\"/>\n",
"</g>\n",
"<!-- c61&#45;&gt;c26 -->\n",
"<g id=\"edge166\" class=\"edge\">\n",
"<title>c61&#45;&gt;c26</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1825.33,-307.13C1817.82,-273.65 1788.56,-143.22 1780.93,-109.17\"/>\n",
"</g>\n",
"<!-- c61&#45;&gt;c28 -->\n",
"<g id=\"edge167\" class=\"edge\">\n",
"<title>c61&#45;&gt;c28</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1836.18,-314.47C1896.36,-310.83 2243.51,-287.37 2516.09,-217 2520.48,-215.87 2525.2,-214.12 2529.05,-212.55\"/>\n",
"</g>\n",
"<!-- c61&#45;&gt;c61 -->\n",
"<g id=\"edge163\" class=\"edge\">\n",
"<title>c61&#45;&gt;c61</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1835.66,-319.22C1844.39,-321.11 1854.09,-320.04 1854.09,-316 1854.09,-311.96 1844.39,-310.89 1835.66,-312.78\"/>\n",
"<text text-anchor=\"middle\" x=\"1832.98\" y=\"-294.32\" font-family=\"Times-Roman\" font-size=\"14.00\">ianopolous asymptotically</text>\n",
"</g>\n",
"<!-- c61&#45;&gt;c61 -->\n",
"<g id=\"edge164\" class=\"edge\">\n",
"<title>c61&#45;&gt;c61</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1835.05,-320.35C1850.74,-326.73 1872.09,-325.28 1872.09,-316 1872.09,-306.72 1850.74,-305.27 1835.05,-311.65\"/>\n",
"<text text-anchor=\"middle\" x=\"1830.14\" y=\"-330.82\" font-family=\"Times-Roman\" font-size=\"14.00\">java</text>\n",
"</g>\n",
"<!-- c62 -->\n",
"<g id=\"node63\" class=\"node\">\n",
"<title>c62</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1753.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c62&#45;&gt;c36 -->\n",
"<g id=\"edge170\" class=\"edge\">\n",
"<title>c62&#45;&gt;c36</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1753.09,-306.68C1753.09,-286.87 1753.09,-237.06 1753.09,-217.28\"/>\n",
"</g>\n",
"<!-- c62&#45;&gt;c50 -->\n",
"<g id=\"edge171\" class=\"edge\">\n",
"<title>c62&#45;&gt;c50</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1760.94,-311.35C1796.02,-295.04 1938.27,-228.91 1973.28,-212.63\"/>\n",
"</g>\n",
"<!-- c62&#45;&gt;c62 -->\n",
"<g id=\"edge168\" class=\"edge\">\n",
"<title>c62&#45;&gt;c62</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1761.66,-319.22C1770.39,-321.11 1780.09,-320.04 1780.09,-316 1780.09,-311.96 1770.39,-310.89 1761.66,-312.78\"/>\n",
"<text text-anchor=\"middle\" x=\"1758.98\" y=\"-294.32\" font-family=\"Times-Roman\" font-size=\"14.00\">mempko dacav</text>\n",
"</g>\n",
"<!-- c62&#45;&gt;c62 -->\n",
"<g id=\"edge169\" class=\"edge\">\n",
"<title>c62&#45;&gt;c62</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1761.05,-320.35C1776.74,-326.73 1798.09,-325.28 1798.09,-316 1798.09,-306.72 1776.74,-305.27 1761.05,-311.65\"/>\n",
"<text text-anchor=\"middle\" x=\"1756.14\" y=\"-330.82\" font-family=\"Times-Roman\" font-size=\"14.00\">c++</text>\n",
"</g>\n",
"<!-- c63 -->\n",
"<g id=\"node64\" class=\"node\">\n",
"<title>c63</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1556.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c63&#45;&gt;c11 -->\n",
"<g id=\"edge173\" class=\"edge\">\n",
"<title>c63&#45;&gt;c11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1548.16,-311.58C1531.42,-304.34 1491.26,-286.8 1458.09,-271 1414.05,-250.02 1362.09,-223.11 1342.8,-213.04\"/>\n",
"</g>\n",
"<!-- c63&#45;&gt;c27 -->\n",
"<g id=\"edge174\" class=\"edge\">\n",
"<title>c63&#45;&gt;c27</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1548.92,-310.45C1521.57,-293.09 1424.05,-231.19 1396.43,-213.66\"/>\n",
"</g>\n",
"<!-- c63&#45;&gt;c35 -->\n",
"<g id=\"edge175\" class=\"edge\">\n",
"<title>c63&#45;&gt;c35</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1564.82,-313.37C1626.51,-301.81 1995.82,-232.37 2044.09,-217 2047.48,-215.92 2051.09,-214.4 2054.18,-212.97\"/>\n",
"</g>\n",
"<!-- c63&#45;&gt;c36 -->\n",
"<g id=\"edge176\" class=\"edge\">\n",
"<title>c63&#45;&gt;c36</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1563.58,-310.97C1594.78,-294.18 1714.38,-229.83 1745.6,-213.03\"/>\n",
"</g>\n",
"<!-- c63&#45;&gt;c55 -->\n",
"<g id=\"edge177\" class=\"edge\">\n",
"<title>c63&#45;&gt;c55</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1565.26,-314.29C1618.13,-309.98 1889.04,-285.33 2098.09,-217 2101.47,-215.9 2105.08,-214.37 2108.17,-212.94\"/>\n",
"</g>\n",
"<!-- c63&#45;&gt;c63 -->\n",
"<g id=\"edge172\" class=\"edge\">\n",
"<title>c63&#45;&gt;c63</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M1563.28,-321.78C1572.33,-326.44 1583.09,-324.51 1583.09,-316 1583.09,-307.49 1572.33,-305.56 1563.28,-310.22\"/>\n",
"<text text-anchor=\"middle\" x=\"1557.29\" y=\"-331.84\" font-family=\"Times-Roman\" font-size=\"14.00\">c</text>\n",
"</g>\n",
"<!-- c64 -->\n",
"<g id=\"node65\" class=\"node\">\n",
"<title>c64</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2437.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c64&#45;&gt;c3 -->\n",
"<g id=\"edge180\" class=\"edge\">\n",
"<title>c64&#45;&gt;c3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2428.6,-312.22C2407.91,-305.44 2353.26,-287.35 2308.09,-271 2287.06,-263.39 2283.04,-257.35 2261.09,-253 1952.11,-191.79 1158.74,-231.66 844.09,-217 803.28,-215.1 754.61,-211.32 734.97,-209.73\"/>\n",
"</g>\n",
"<!-- c64&#45;&gt;c6 -->\n",
"<g id=\"edge181\" class=\"edge\">\n",
"<title>c64&#45;&gt;c6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2427.99,-314.43C2405.79,-313.05 2347.1,-309.47 2298.09,-307 1374.4,-260.43 1138.77,-314.79 219.09,-217 205.59,-215.56 190.1,-212.69 180.71,-210.8\"/>\n",
"</g>\n",
"<!-- c64&#45;&gt;c20 -->\n",
"<g id=\"edge182\" class=\"edge\">\n",
"<title>c64&#45;&gt;c20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2429.19,-311.23C2394.74,-294.78 2257.85,-229.42 2223.13,-212.84\"/>\n",
"</g>\n",
"<!-- c64&#45;&gt;c28 -->\n",
"<g id=\"edge183\" class=\"edge\">\n",
"<title>c64&#45;&gt;c28</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2446.19,-314.39C2467.39,-312.42 2519.98,-304.24 2542.09,-271 2553.22,-254.28 2545.54,-229.12 2540.51,-216.62\"/>\n",
"</g>\n",
"<!-- c64&#45;&gt;c39 -->\n",
"<g id=\"edge184\" class=\"edge\">\n",
"<title>c64&#45;&gt;c39</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2446.1,-313.95C2467.82,-310.99 2523.84,-300.76 2558.09,-271 2575.22,-256.13 2584.88,-230.14 2588.88,-217.04\"/>\n",
"</g>\n",
"<!-- c64&#45;&gt;c49 -->\n",
"<g id=\"edge185\" class=\"edge\">\n",
"<title>c64&#45;&gt;c49</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2446.21,-314.06C2470.02,-311.24 2535.25,-301.07 2579.09,-271 2600.59,-256.25 2617.17,-229.24 2624.29,-216.3\"/>\n",
"</g>\n",
"<!-- c64&#45;&gt;c54 -->\n",
"<g id=\"edge186\" class=\"edge\">\n",
"<title>c64&#45;&gt;c54</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2446.05,-313.75C2464.99,-310.56 2508.86,-300.21 2527.09,-271 2541.4,-248.08 2504.66,-223.13 2487.91,-213.31\"/>\n",
"</g>\n",
"<!-- c64&#45;&gt;c64 -->\n",
"<g id=\"edge178\" class=\"edge\">\n",
"<title>c64&#45;&gt;c64</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2445.66,-319.22C2454.39,-321.11 2464.09,-320.04 2464.09,-316 2464.09,-311.96 2454.39,-310.89 2445.66,-312.78\"/>\n",
"<text text-anchor=\"middle\" x=\"2442.98\" y=\"-294.32\" font-family=\"Times-Roman\" font-size=\"14.00\">enz rtpg feoh</text>\n",
"</g>\n",
"<!-- c64&#45;&gt;c64 -->\n",
"<g id=\"edge179\" class=\"edge\">\n",
"<title>c64&#45;&gt;c64</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2445.05,-320.35C2460.74,-326.73 2482.09,-325.28 2482.09,-316 2482.09,-306.72 2460.74,-305.27 2445.05,-311.65\"/>\n",
"<text text-anchor=\"middle\" x=\"2440.14\" y=\"-330.82\" font-family=\"Times-Roman\" font-size=\"14.00\">python</text>\n",
"</g>\n",
"<!-- c65 -->\n",
"<g id=\"node66\" class=\"node\">\n",
"<title>c65</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2244.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c65&#45;&gt;c49 -->\n",
"<g id=\"edge189\" class=\"edge\">\n",
"<title>c65&#45;&gt;c49</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2253.22,-314.43C2306.33,-311.06 2574.39,-293.03 2603.09,-271 2620.4,-257.71 2625.77,-230.5 2627.4,-216.99\"/>\n",
"</g>\n",
"<!-- c65&#45;&gt;c55 -->\n",
"<g id=\"edge190\" class=\"edge\">\n",
"<title>c65&#45;&gt;c55</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2237.57,-309.6C2215.66,-291.46 2144.87,-232.83 2122.76,-214.52\"/>\n",
"</g>\n",
"<!-- c65&#45;&gt;c60 -->\n",
"<g id=\"edge191\" class=\"edge\">\n",
"<title>c65&#45;&gt;c60</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2253.26,-314.06C2285.53,-310.54 2392.98,-297.03 2413.09,-271 2427.61,-252.22 2401.14,-225.85 2387.94,-214.53\"/>\n",
"</g>\n",
"<!-- c65&#45;&gt;c65 -->\n",
"<g id=\"edge187\" class=\"edge\">\n",
"<title>c65&#45;&gt;c65</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2252.66,-319.22C2261.39,-321.11 2271.09,-320.04 2271.09,-316 2271.09,-311.96 2261.39,-310.89 2252.66,-312.78\"/>\n",
"<text text-anchor=\"middle\" x=\"2249.98\" y=\"-294.32\" font-family=\"Times-Roman\" font-size=\"14.00\">reezer pkw lollipopman capitano</text>\n",
"</g>\n",
"<!-- c65&#45;&gt;c65 -->\n",
"<g id=\"edge188\" class=\"edge\">\n",
"<title>c65&#45;&gt;c65</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2252.05,-320.35C2267.74,-326.73 2289.09,-325.28 2289.09,-316 2289.09,-306.72 2267.74,-305.27 2252.05,-311.65\"/>\n",
"<text text-anchor=\"middle\" x=\"2247.14\" y=\"-330.82\" font-family=\"Times-Roman\" font-size=\"14.00\">go</text>\n",
"</g>\n",
"<!-- c66 -->\n",
"<g id=\"node67\" class=\"node\">\n",
"<title>c66</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"2038.09\" cy=\"-316\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c66&#45;&gt;c13 -->\n",
"<g id=\"edge194\" class=\"edge\">\n",
"<title>c66&#45;&gt;c13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2029.23,-313.85C1946.79,-303.11 1315.22,-220.87 1232.92,-210.15\"/>\n",
"</g>\n",
"<!-- c66&#45;&gt;c32 -->\n",
"<g id=\"edge195\" class=\"edge\">\n",
"<title>c66&#45;&gt;c32</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2029.71,-312.38C1982.91,-297.75 1754.31,-226.27 1707.48,-211.62\"/>\n",
"</g>\n",
"<!-- c66&#45;&gt;c33 -->\n",
"<g id=\"edge196\" class=\"edge\">\n",
"<title>c66&#45;&gt;c33</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2037.64,-306.95C2036.94,-295.11 2035.4,-272.3 2033.09,-253 2031.59,-240.4 2029.14,-225.89 2027.57,-217.08\"/>\n",
"</g>\n",
"<!-- c66&#45;&gt;c35 -->\n",
"<g id=\"edge197\" class=\"edge\">\n",
"<title>c66&#45;&gt;c35</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2039.9,-307.03C2044.34,-287.39 2055.8,-236.8 2060.27,-217.06\"/>\n",
"</g>\n",
"<!-- c66&#45;&gt;c38 -->\n",
"<g id=\"edge198\" class=\"edge\">\n",
"<title>c66&#45;&gt;c38</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2029.17,-313.11C2001.56,-307.25 1915.15,-288.67 1844.09,-271 1757.76,-249.53 1654.08,-220.15 1623.8,-211.5\"/>\n",
"</g>\n",
"<!-- c66&#45;&gt;c44 -->\n",
"<g id=\"edge199\" class=\"edge\">\n",
"<title>c66&#45;&gt;c44</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2046.09,-311.66C2075.72,-299.3 2181.98,-254.83 2269.09,-217 2272.36,-215.58 2275.94,-214 2279.04,-212.61\"/>\n",
"</g>\n",
"<!-- c66&#45;&gt;c50 -->\n",
"<g id=\"edge200\" class=\"edge\">\n",
"<title>c66&#45;&gt;c50</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2034.18,-307.71C2023.76,-288.35 1995.48,-235.76 1985.04,-216.34\"/>\n",
"</g>\n",
"<!-- c66&#45;&gt;c54 -->\n",
"<g id=\"edge201\" class=\"edge\">\n",
"<title>c66&#45;&gt;c54</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2046.58,-312.99C2072.82,-306.78 2155.03,-287.3 2223.09,-271 2320.4,-247.69 2438.35,-219.12 2471.22,-211.15\"/>\n",
"</g>\n",
"<!-- c66&#45;&gt;c60 -->\n",
"<g id=\"edge202\" class=\"edge\">\n",
"<title>c66&#45;&gt;c60</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2046.57,-312.38C2093.92,-297.75 2325.22,-226.27 2372.6,-211.62\"/>\n",
"</g>\n",
"<!-- c66&#45;&gt;c66 -->\n",
"<g id=\"edge192\" class=\"edge\">\n",
"<title>c66&#45;&gt;c66</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2046.66,-319.22C2055.39,-321.11 2065.09,-320.04 2065.09,-316 2065.09,-311.96 2055.39,-310.89 2046.66,-312.78\"/>\n",
"<text text-anchor=\"middle\" x=\"2043.98\" y=\"-294.32\" font-family=\"Times-Roman\" font-size=\"14.00\">mortimer dvk</text>\n",
"</g>\n",
"<!-- c66&#45;&gt;c66 -->\n",
"<g id=\"edge193\" class=\"edge\">\n",
"<title>c66&#45;&gt;c66</title>\n",
"<path fill=\"none\" stroke=\"transparent\" d=\"M2046.05,-320.35C2061.74,-326.73 2083.09,-325.28 2083.09,-316 2083.09,-306.72 2061.74,-305.27 2046.05,-311.65\"/>\n",
"<text text-anchor=\"middle\" x=\"2041.14\" y=\"-330.82\" font-family=\"Times-Roman\" font-size=\"14.00\">rust</text>\n",
"</g>\n",
"<!-- c67 -->\n",
"<g id=\"node68\" class=\"node\">\n",
"<title>c67</title>\n",
"<ellipse fill=\"lightgrey\" stroke=\"black\" cx=\"1135.09\" cy=\"-407\" rx=\"9\" ry=\"9\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c16 -->\n",
"<g id=\"edge203\" class=\"edge\">\n",
"<title>c67&#45;&gt;c16</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1125.9,-405.93C1035.72,-405.18 307.96,-396.95 105.09,-325 68.52,-312.03 32.33,-281.48 18.25,-268.74\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c29 -->\n",
"<g id=\"edge204\" class=\"edge\">\n",
"<title>c67&#45;&gt;c29</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1125.96,-405.5C1069.6,-402.41 763.23,-385.15 514.09,-362 360.67,-347.74 174.15,-323.69 131.89,-318.16\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c37 -->\n",
"<g id=\"edge205\" class=\"edge\">\n",
"<title>c67&#45;&gt;c37</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1126.05,-405.44C1076.06,-402.15 828.97,-383.49 637.09,-325 586.03,-309.43 529.28,-278.5 509.42,-267.23\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c40 -->\n",
"<g id=\"edge206\" class=\"edge\">\n",
"<title>c67&#45;&gt;c40</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1126.35,-404.38C1067.01,-393.38 723.86,-329.75 664,-318.65\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c41 -->\n",
"<g id=\"edge207\" class=\"edge\">\n",
"<title>c67&#45;&gt;c41</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1143.32,-403.07C1171.94,-392.86 1269.73,-357.63 1349.09,-325 1352.38,-323.65 1355.97,-322.07 1359.07,-320.68\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c42 -->\n",
"<g id=\"edge208\" class=\"edge\">\n",
"<title>c67&#45;&gt;c42</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1141.72,-400.43C1160.76,-384.45 1215.43,-338.55 1234.46,-322.57\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c43 -->\n",
"<g id=\"edge209\" class=\"edge\">\n",
"<title>c67&#45;&gt;c43</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1137.67,-398.1C1143.18,-381.17 1156.09,-341.56 1161.57,-324.75\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c45 -->\n",
"<g id=\"edge210\" class=\"edge\">\n",
"<title>c67&#45;&gt;c45</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1142.81,-401.71C1169.9,-386.64 1260.48,-336.25 1287.45,-321.25\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c46 -->\n",
"<g id=\"edge211\" class=\"edge\">\n",
"<title>c67&#45;&gt;c46</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1127.53,-401.94C1099.88,-387.12 1004.43,-335.94 976.7,-321.08\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c47 -->\n",
"<g id=\"edge212\" class=\"edge\">\n",
"<title>c67&#45;&gt;c47</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1126.13,-405.62C1070.79,-403.2 769.98,-389.24 526.09,-362 411.55,-349.2 273.43,-324.96 237.81,-318.58\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c48 -->\n",
"<g id=\"edge213\" class=\"edge\">\n",
"<title>c67&#45;&gt;c48</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1132.61,-398.1C1127.28,-381.17 1114.82,-341.56 1109.53,-324.75\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c51 -->\n",
"<g id=\"edge214\" class=\"edge\">\n",
"<title>c67&#45;&gt;c51</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1127,-402.73C1092.58,-388.8 958.5,-334.56 923.49,-320.4\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c52 -->\n",
"<g id=\"edge215\" class=\"edge\">\n",
"<title>c67&#45;&gt;c52</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1126.19,-404.06C1072.24,-392.29 789.5,-330.61 735.88,-318.92\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c53 -->\n",
"<g id=\"edge216\" class=\"edge\">\n",
"<title>c67&#45;&gt;c53</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1143.66,-404.05C1178.63,-395.97 1313.85,-363.8 1421.09,-325 1424.44,-323.79 1428.04,-322.24 1431.13,-320.83\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c56 -->\n",
"<g id=\"edge217\" class=\"edge\">\n",
"<title>c67&#45;&gt;c56</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1125.91,-405.76C1070.53,-404.23 775.32,-394.77 537.09,-362 453.33,-350.48 353.68,-326.57 323.91,-319.21\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c57 -->\n",
"<g id=\"edge218\" class=\"edge\">\n",
"<title>c67&#45;&gt;c57</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1144.07,-405.25C1215.48,-399.28 1699.2,-358.79 2092.09,-325 2122.6,-322.38 2158.8,-319.21 2175.21,-317.78\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c58 -->\n",
"<g id=\"edge219\" class=\"edge\">\n",
"<title>c67&#45;&gt;c58</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1126.01,-406.02C1071.21,-405.97 779.27,-403.67 546.09,-362 488.04,-351.62 420.68,-328.4 397.46,-320.06\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c59 -->\n",
"<g id=\"edge220\" class=\"edge\">\n",
"<title>c67&#45;&gt;c59</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1128.42,-400.7C1108.55,-384.91 1049.88,-338.29 1029.87,-322.39\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c61 -->\n",
"<g id=\"edge221\" class=\"edge\">\n",
"<title>c67&#45;&gt;c61</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1144.35,-405.79C1204.21,-404.23 1542.39,-392.66 1807.09,-325 1811.15,-323.96 1815.49,-322.3 1819.08,-320.76\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c62 -->\n",
"<g id=\"edge222\" class=\"edge\">\n",
"<title>c67&#45;&gt;c62</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1143.83,-404.74C1213.22,-394.75 1674.38,-328.34 1744.23,-318.28\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c63 -->\n",
"<g id=\"edge223\" class=\"edge\">\n",
"<title>c67&#45;&gt;c63</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1143.89,-404.14C1198.68,-392.56 1492.7,-330.4 1547.35,-318.85\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c64 -->\n",
"<g id=\"edge224\" class=\"edge\">\n",
"<title>c67&#45;&gt;c64</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1144.12,-405.73C1212.07,-403.64 1650.59,-389.52 2006.09,-362 2176.36,-348.82 2383.55,-323.63 2428.31,-318.09\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c65 -->\n",
"<g id=\"edge225\" class=\"edge\">\n",
"<title>c67&#45;&gt;c65</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1144.14,-406.17C1221.5,-407.47 1779.79,-413.4 2220.09,-325 2225.43,-323.93 2231.23,-322.02 2235.79,-320.33\"/>\n",
"</g>\n",
"<!-- c67&#45;&gt;c66 -->\n",
"<g id=\"edge226\" class=\"edge\">\n",
"<title>c67&#45;&gt;c66</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1144.12,-405.31C1194.05,-401.47 1441.38,-382.22 1643.09,-362 1797.96,-346.47 1986.48,-323.38 2029.2,-318.1\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<graphviz.dot.Digraph at 0x7fd92d575550>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c.lattice.graphviz()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The resulting spatial arrangement of programming languages in the lattice gives a sense of their relatedness. **Racket**, **Scheme** and **Common Lisp** are closer to each other than they are to **PHP**, **C**, or **Java**. **Rust** is close to heavy hitters like **C**, **C++**, and **Java**, but also borders on the territory of **Typescript**, **Go**, and **Python**. **Ada** leads an isolated, fringe existence (having been named by only one crustacean). It doesn't *all* make sense, but it also doesn't make *no* sense.\n",
"\n",
"The spatial arrangement of users is also telling. Many cluster on the right of the lattice (as indicated by the overlapping labels) because they advocate some combination of **Rust**, **Python**, and **Go**.\n",
"\n",
"Further, we can also characterize their relationships in formal (logical) terms. Some of these truly make no sense: How can **C#** and **F#** be incompatible? How can **Lua** be \"implied by\" **Go**? But some relations do make *some* sense: **Haskell** and **F#** are \"equivalent\" because (as I understand it) they scratch a similar itch. Many languages are orthogonal because they have different strengths."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<Equivalent('haskell', 'f#')>,\n",
" <Incompatible('python', 'nim')>,\n",
" <Incompatible('python', 'c')>,\n",
" <Incompatible('python', 'forth')>,\n",
" <Incompatible('python', 'scheme')>,\n",
" <Incompatible('python', 'cl')>,\n",
" <Incompatible('python', 'kotlin')>,\n",
" <Incompatible('python', 'c++')>,\n",
" <Incompatible('python', 'swift')>,\n",
" <Incompatible('python', 'clojure')>,\n",
" <Incompatible('python', 'racket')>,\n",
" <Incompatible('python', 'd')>,\n",
" <Incompatible('python', 'scala')>,\n",
" <Incompatible('python', 'c#')>,\n",
" <Incompatible('python', 'ada')>,\n",
" <Incompatible('python', 'reason')>,\n",
" <Incompatible('python', 'elm')>,\n",
" <Incompatible('python', 'lua')>,\n",
" <Incompatible('python', 'js')>,\n",
" <Incompatible('ruby', 'c')>,\n",
" <Incompatible('ruby', 'forth')>,\n",
" <Incompatible('ruby', 'scheme')>,\n",
" <Incompatible('ruby', 'cl')>,\n",
" <Incompatible('ruby', 'go')>,\n",
" <Incompatible('ruby', 'java')>,\n",
" <Incompatible('ruby', 'kotlin')>,\n",
" <Incompatible('ruby', 'c++')>,\n",
" <Incompatible('ruby', 'php')>,\n",
" <Incompatible('ruby', 'swift')>,\n",
" <Incompatible('ruby', 'node')>,\n",
" <Incompatible('ruby', 'c#')>,\n",
" <Incompatible('ruby', 'ada')>,\n",
" <Incompatible('ruby', 'reason')>,\n",
" <Incompatible('ruby', 'haskell')>,\n",
" <Incompatible('ruby', 'f#')>,\n",
" <Incompatible('ruby', 'lua')>,\n",
" <Incompatible('julia', 'rust')>,\n",
" <Incompatible('julia', 'c')>,\n",
" <Incompatible('julia', 'forth')>,\n",
" <Incompatible('julia', 'scheme')>,\n",
" <Incompatible('julia', 'cl')>,\n",
" <Incompatible('julia', 'typescript')>,\n",
" <Incompatible('julia', 'go')>,\n",
" <Incompatible('julia', 'elixir')>,\n",
" <Incompatible('julia', 'ocaml')>,\n",
" <Incompatible('julia', 'java')>,\n",
" <Incompatible('julia', 'kotlin')>,\n",
" <Incompatible('julia', 'c++')>,\n",
" <Incompatible('julia', 'php')>,\n",
" <Incompatible('julia', 'swift')>,\n",
" <Incompatible('julia', 'node')>,\n",
" <Incompatible('julia', 'clojure')>,\n",
" <Incompatible('julia', 'racket')>,\n",
" <Incompatible('julia', 'd')>,\n",
" <Incompatible('julia', 'scala')>,\n",
" <Incompatible('julia', 'c#')>,\n",
" <Incompatible('julia', 'ada')>,\n",
" <Incompatible('julia', 'reason')>,\n",
" <Incompatible('julia', 'elm')>,\n",
" <Incompatible('julia', 'lua')>,\n",
" <Incompatible('julia', 'js')>,\n",
" <Incompatible('nim', 'rust')>,\n",
" <Incompatible('nim', 'c')>,\n",
" <Incompatible('nim', 'forth')>,\n",
" <Incompatible('nim', 'scheme')>,\n",
" <Incompatible('nim', 'cl')>,\n",
" <Incompatible('nim', 'typescript')>,\n",
" <Incompatible('nim', 'go')>,\n",
" <Incompatible('nim', 'elixir')>,\n",
" <Incompatible('nim', 'ocaml')>,\n",
" <Incompatible('nim', 'java')>,\n",
" <Incompatible('nim', 'kotlin')>,\n",
" <Incompatible('nim', 'c++')>,\n",
" <Incompatible('nim', 'php')>,\n",
" <Incompatible('nim', 'swift')>,\n",
" <Incompatible('nim', 'node')>,\n",
" <Incompatible('nim', 'clojure')>,\n",
" <Incompatible('nim', 'racket')>,\n",
" <Incompatible('nim', 'd')>,\n",
" <Incompatible('nim', 'scala')>,\n",
" <Incompatible('nim', 'ada')>,\n",
" <Incompatible('nim', 'reason')>,\n",
" <Incompatible('nim', 'elm')>,\n",
" <Incompatible('nim', 'haskell')>,\n",
" <Incompatible('nim', 'f#')>,\n",
" <Incompatible('nim', 'lua')>,\n",
" <Incompatible('nim', 'js')>,\n",
" <Incompatible('rust', 'forth')>,\n",
" <Incompatible('rust', 'scheme')>,\n",
" <Incompatible('rust', 'cl')>,\n",
" <Incompatible('rust', 'elixir')>,\n",
" <Incompatible('rust', 'php')>,\n",
" <Incompatible('rust', 'node')>,\n",
" <Incompatible('rust', 'clojure')>,\n",
" <Incompatible('rust', 'racket')>,\n",
" <Incompatible('rust', 'c#')>,\n",
" <Incompatible('rust', 'ada')>,\n",
" <Incompatible('rust', 'reason')>,\n",
" <Incompatible('rust', 'elm')>,\n",
" <Incompatible('rust', 'haskell')>,\n",
" <Incompatible('rust', 'f#')>,\n",
" <Incompatible('rust', 'lua')>,\n",
" <Incompatible('rust', 'js')>,\n",
" <Incompatible('c', 'elixir')>,\n",
" <Incompatible('c', 'ocaml')>,\n",
" <Incompatible('c', 'java')>,\n",
" <Incompatible('c', 'kotlin')>,\n",
" <Incompatible('c', 'php')>,\n",
" <Incompatible('c', 'swift')>,\n",
" <Incompatible('c', 'node')>,\n",
" <Incompatible('c', 'd')>,\n",
" <Incompatible('c', 'scala')>,\n",
" <Incompatible('c', 'c#')>,\n",
" <Incompatible('c', 'ada')>,\n",
" <Incompatible('c', 'reason')>,\n",
" <Incompatible('c', 'elm')>,\n",
" <Incompatible('c', 'haskell')>,\n",
" <Incompatible('c', 'f#')>,\n",
" <Incompatible('c', 'js')>,\n",
" <Incompatible('forth', 'cl')>,\n",
" <Incompatible('forth', 'typescript')>,\n",
" <Incompatible('forth', 'go')>,\n",
" <Incompatible('forth', 'elixir')>,\n",
" <Incompatible('forth', 'ocaml')>,\n",
" <Incompatible('forth', 'java')>,\n",
" <Incompatible('forth', 'kotlin')>,\n",
" <Incompatible('forth', 'c++')>,\n",
" <Incompatible('forth', 'php')>,\n",
" <Incompatible('forth', 'swift')>,\n",
" <Incompatible('forth', 'node')>,\n",
" <Incompatible('forth', 'clojure')>,\n",
" <Incompatible('forth', 'racket')>,\n",
" <Incompatible('forth', 'd')>,\n",
" <Incompatible('forth', 'scala')>,\n",
" <Incompatible('forth', 'c#')>,\n",
" <Incompatible('forth', 'ada')>,\n",
" <Incompatible('forth', 'reason')>,\n",
" <Incompatible('forth', 'elm')>,\n",
" <Incompatible('forth', 'haskell')>,\n",
" <Incompatible('forth', 'f#')>,\n",
" <Incompatible('forth', 'lua')>,\n",
" <Incompatible('forth', 'js')>,\n",
" <Incompatible('scheme', 'cl')>,\n",
" <Incompatible('scheme', 'go')>,\n",
" <Incompatible('scheme', 'ocaml')>,\n",
" <Incompatible('scheme', 'java')>,\n",
" <Incompatible('scheme', 'kotlin')>,\n",
" <Incompatible('scheme', 'php')>,\n",
" <Incompatible('scheme', 'swift')>,\n",
" <Incompatible('scheme', 'node')>,\n",
" <Incompatible('scheme', 'd')>,\n",
" <Incompatible('scheme', 'scala')>,\n",
" <Incompatible('scheme', 'c#')>,\n",
" <Incompatible('scheme', 'ada')>,\n",
" <Incompatible('scheme', 'reason')>,\n",
" <Incompatible('scheme', 'elm')>,\n",
" <Incompatible('scheme', 'haskell')>,\n",
" <Incompatible('scheme', 'f#')>,\n",
" <Incompatible('scheme', 'lua')>,\n",
" <Incompatible('scheme', 'js')>,\n",
" <Incompatible('cl', 'typescript')>,\n",
" <Incompatible('cl', 'go')>,\n",
" <Incompatible('cl', 'elixir')>,\n",
" <Incompatible('cl', 'ocaml')>,\n",
" <Incompatible('cl', 'java')>,\n",
" <Incompatible('cl', 'kotlin')>,\n",
" <Incompatible('cl', 'c++')>,\n",
" <Incompatible('cl', 'php')>,\n",
" <Incompatible('cl', 'swift')>,\n",
" <Incompatible('cl', 'node')>,\n",
" <Incompatible('cl', 'clojure')>,\n",
" <Incompatible('cl', 'racket')>,\n",
" <Incompatible('cl', 'd')>,\n",
" <Incompatible('cl', 'scala')>,\n",
" <Incompatible('cl', 'c#')>,\n",
" <Incompatible('cl', 'ada')>,\n",
" <Incompatible('cl', 'reason')>,\n",
" <Incompatible('cl', 'elm')>,\n",
" <Incompatible('cl', 'haskell')>,\n",
" <Incompatible('cl', 'f#')>,\n",
" <Incompatible('cl', 'lua')>,\n",
" <Incompatible('cl', 'js')>,\n",
" <Incompatible('typescript', 'elixir')>,\n",
" <Incompatible('typescript', 'ocaml')>,\n",
" <Incompatible('typescript', 'kotlin')>,\n",
" <Incompatible('typescript', 'php')>,\n",
" <Incompatible('typescript', 'swift')>,\n",
" <Incompatible('typescript', 'node')>,\n",
" <Incompatible('typescript', 'clojure')>,\n",
" <Incompatible('typescript', 'd')>,\n",
" <Incompatible('typescript', 'scala')>,\n",
" <Incompatible('typescript', 'c#')>,\n",
" <Incompatible('typescript', 'ada')>,\n",
" <Incompatible('typescript', 'reason')>,\n",
" <Incompatible('typescript', 'elm')>,\n",
" <Incompatible('typescript', 'haskell')>,\n",
" <Incompatible('typescript', 'f#')>,\n",
" <Incompatible('typescript', 'lua')>,\n",
" <Incompatible('typescript', 'js')>,\n",
" <Incompatible('go', 'elixir')>,\n",
" <Incompatible('go', 'ocaml')>,\n",
" <Incompatible('go', 'kotlin')>,\n",
" <Incompatible('go', 'php')>,\n",
" <Incompatible('go', 'swift')>,\n",
" <Incompatible('go', 'node')>,\n",
" <Incompatible('go', 'racket')>,\n",
" <Incompatible('go', 'd')>,\n",
" <Incompatible('go', 'scala')>,\n",
" <Incompatible('go', 'c#')>,\n",
" <Incompatible('go', 'ada')>,\n",
" <Incompatible('go', 'reason')>,\n",
" <Incompatible('go', 'elm')>,\n",
" <Incompatible('go', 'haskell')>,\n",
" <Incompatible('go', 'f#')>,\n",
" <Incompatible('go', 'js')>,\n",
" <Incompatible('elixir', 'java')>,\n",
" <Incompatible('elixir', 'kotlin')>,\n",
" <Incompatible('elixir', 'c++')>,\n",
" <Incompatible('elixir', 'd')>,\n",
" <Incompatible('elixir', 'scala')>,\n",
" <Incompatible('elixir', 'c#')>,\n",
" <Incompatible('elixir', 'ada')>,\n",
" <Incompatible('elixir', 'reason')>,\n",
" <Incompatible('elixir', 'haskell')>,\n",
" <Incompatible('elixir', 'f#')>,\n",
" <Incompatible('elixir', 'lua')>,\n",
" <Incompatible('elixir', 'js')>,\n",
" <Incompatible('ocaml', 'java')>,\n",
" <Incompatible('ocaml', 'c++')>,\n",
" <Incompatible('ocaml', 'php')>,\n",
" <Incompatible('ocaml', 'swift')>,\n",
" <Incompatible('ocaml', 'node')>,\n",
" <Incompatible('ocaml', 'clojure')>,\n",
" <Incompatible('ocaml', 'scala')>,\n",
" <Incompatible('ocaml', 'c#')>,\n",
" <Incompatible('ocaml', 'ada')>,\n",
" <Incompatible('ocaml', 'elm')>,\n",
" <Incompatible('ocaml', 'haskell')>,\n",
" <Incompatible('ocaml', 'f#')>,\n",
" <Incompatible('ocaml', 'lua')>,\n",
" <Incompatible('ocaml', 'js')>,\n",
" <Incompatible('java', 'php')>,\n",
" <Incompatible('java', 'swift')>,\n",
" <Incompatible('java', 'node')>,\n",
" <Incompatible('java', 'clojure')>,\n",
" <Incompatible('java', 'racket')>,\n",
" <Incompatible('java', 'scala')>,\n",
" <Incompatible('java', 'c#')>,\n",
" <Incompatible('java', 'ada')>,\n",
" <Incompatible('java', 'reason')>,\n",
" <Incompatible('java', 'elm')>,\n",
" <Incompatible('java', 'haskell')>,\n",
" <Incompatible('java', 'f#')>,\n",
" <Incompatible('java', 'lua')>,\n",
" <Incompatible('java', 'js')>,\n",
" <Incompatible('kotlin', 'c++')>,\n",
" <Incompatible('kotlin', 'php')>,\n",
" <Incompatible('kotlin', 'swift')>,\n",
" <Incompatible('kotlin', 'node')>,\n",
" <Incompatible('kotlin', 'clojure')>,\n",
" <Incompatible('kotlin', 'racket')>,\n",
" <Incompatible('kotlin', 'd')>,\n",
" <Incompatible('kotlin', 'scala')>,\n",
" <Incompatible('kotlin', 'c#')>,\n",
" <Incompatible('kotlin', 'ada')>,\n",
" <Incompatible('kotlin', 'reason')>,\n",
" <Incompatible('kotlin', 'elm')>,\n",
" <Incompatible('kotlin', 'haskell')>,\n",
" <Incompatible('kotlin', 'f#')>,\n",
" <Incompatible('kotlin', 'lua')>,\n",
" <Incompatible('kotlin', 'js')>,\n",
" <Incompatible('c++', 'php')>,\n",
" <Incompatible('c++', 'node')>,\n",
" <Incompatible('c++', 'clojure')>,\n",
" <Incompatible('c++', 'scala')>,\n",
" <Incompatible('c++', 'c#')>,\n",
" <Incompatible('c++', 'ada')>,\n",
" <Incompatible('c++', 'reason')>,\n",
" <Incompatible('c++', 'elm')>,\n",
" <Incompatible('c++', 'haskell')>,\n",
" <Incompatible('c++', 'f#')>,\n",
" <Incompatible('c++', 'lua')>,\n",
" <Incompatible('c++', 'js')>,\n",
" <Incompatible('php', 'clojure')>,\n",
" <Incompatible('php', 'racket')>,\n",
" <Incompatible('php', 'd')>,\n",
" <Incompatible('php', 'scala')>,\n",
" <Incompatible('php', 'c#')>,\n",
" <Incompatible('php', 'ada')>,\n",
" <Incompatible('php', 'reason')>,\n",
" <Incompatible('php', 'elm')>,\n",
" <Incompatible('php', 'haskell')>,\n",
" <Incompatible('php', 'f#')>,\n",
" <Incompatible('php', 'lua')>,\n",
" <Incompatible('php', 'js')>,\n",
" <Incompatible('swift', 'node')>,\n",
" <Incompatible('swift', 'clojure')>,\n",
" <Incompatible('swift', 'racket')>,\n",
" <Incompatible('swift', 'd')>,\n",
" <Incompatible('swift', 'scala')>,\n",
" <Incompatible('swift', 'c#')>,\n",
" <Incompatible('swift', 'ada')>,\n",
" <Incompatible('swift', 'reason')>,\n",
" <Incompatible('swift', 'elm')>,\n",
" <Incompatible('swift', 'haskell')>,\n",
" <Incompatible('swift', 'f#')>,\n",
" <Incompatible('swift', 'lua')>,\n",
" <Incompatible('swift', 'js')>,\n",
" <Incompatible('node', 'racket')>,\n",
" <Incompatible('node', 'd')>,\n",
" <Incompatible('node', 'scala')>,\n",
" <Incompatible('node', 'c#')>,\n",
" <Incompatible('node', 'ada')>,\n",
" <Incompatible('node', 'reason')>,\n",
" <Incompatible('node', 'elm')>,\n",
" <Incompatible('node', 'haskell')>,\n",
" <Incompatible('node', 'f#')>,\n",
" <Incompatible('node', 'lua')>,\n",
" <Incompatible('node', 'js')>,\n",
" <Incompatible('clojure', 'd')>,\n",
" <Incompatible('clojure', 'scala')>,\n",
" <Incompatible('clojure', 'c#')>,\n",
" <Incompatible('clojure', 'ada')>,\n",
" <Incompatible('clojure', 'reason')>,\n",
" <Incompatible('clojure', 'haskell')>,\n",
" <Incompatible('clojure', 'f#')>,\n",
" <Incompatible('clojure', 'js')>,\n",
" <Incompatible('racket', 'scala')>,\n",
" <Incompatible('racket', 'c#')>,\n",
" <Incompatible('racket', 'ada')>,\n",
" <Incompatible('racket', 'reason')>,\n",
" <Incompatible('racket', 'elm')>,\n",
" <Incompatible('racket', 'haskell')>,\n",
" <Incompatible('racket', 'f#')>,\n",
" <Incompatible('racket', 'lua')>,\n",
" <Incompatible('racket', 'js')>,\n",
" <Incompatible('d', 'scala')>,\n",
" <Incompatible('d', 'c#')>,\n",
" <Incompatible('d', 'ada')>,\n",
" <Incompatible('d', 'reason')>,\n",
" <Incompatible('d', 'elm')>,\n",
" <Incompatible('d', 'haskell')>,\n",
" <Incompatible('d', 'f#')>,\n",
" <Incompatible('d', 'lua')>,\n",
" <Incompatible('d', 'js')>,\n",
" <Incompatible('scala', 'c#')>,\n",
" <Incompatible('scala', 'ada')>,\n",
" <Incompatible('scala', 'reason')>,\n",
" <Incompatible('scala', 'elm')>,\n",
" <Incompatible('scala', 'haskell')>,\n",
" <Incompatible('scala', 'f#')>,\n",
" <Incompatible('scala', 'lua')>,\n",
" <Incompatible('scala', 'js')>,\n",
" <Incompatible('c#', 'ada')>,\n",
" <Incompatible('c#', 'reason')>,\n",
" <Incompatible('c#', 'elm')>,\n",
" <Incompatible('c#', 'haskell')>,\n",
" <Incompatible('c#', 'f#')>,\n",
" <Incompatible('c#', 'lua')>,\n",
" <Incompatible('c#', 'js')>,\n",
" <Incompatible('ada', 'reason')>,\n",
" <Incompatible('ada', 'elm')>,\n",
" <Incompatible('ada', 'haskell')>,\n",
" <Incompatible('ada', 'f#')>,\n",
" <Incompatible('ada', 'lua')>,\n",
" <Incompatible('ada', 'js')>,\n",
" <Incompatible('reason', 'elm')>,\n",
" <Incompatible('reason', 'haskell')>,\n",
" <Incompatible('reason', 'f#')>,\n",
" <Incompatible('reason', 'lua')>,\n",
" <Incompatible('reason', 'js')>,\n",
" <Incompatible('elm', 'haskell')>,\n",
" <Incompatible('elm', 'f#')>,\n",
" <Incompatible('elm', 'lua')>,\n",
" <Incompatible('elm', 'js')>,\n",
" <Incompatible('haskell', 'lua')>,\n",
" <Incompatible('haskell', 'js')>,\n",
" <Incompatible('f#', 'lua')>,\n",
" <Incompatible('f#', 'js')>,\n",
" <Incompatible('lua', 'js')>,\n",
" <Implication('haskell', 'python')>,\n",
" <Implication('f#', 'python')>,\n",
" <Implication('scala', 'ruby')>,\n",
" <Implication('js', 'ruby')>,\n",
" <Implication('haskell', 'julia')>,\n",
" <Implication('f#', 'julia')>,\n",
" <Implication('scala', 'rust')>,\n",
" <Implication('forth', 'c')>,\n",
" <Implication('lua', 'c')>,\n",
" <Implication('forth', 'scheme')>,\n",
" <Implication('lua', 'go')>,\n",
" <Implication('reason', 'ocaml')>,\n",
" <Implication('lua', 'clojure')>,\n",
" <Orthogonal('python', 'ruby')>,\n",
" <Orthogonal('python', 'julia')>,\n",
" <Orthogonal('python', 'rust')>,\n",
" <Orthogonal('python', 'typescript')>,\n",
" <Orthogonal('python', 'go')>,\n",
" <Orthogonal('python', 'elixir')>,\n",
" <Orthogonal('python', 'ocaml')>,\n",
" <Orthogonal('python', 'java')>,\n",
" <Orthogonal('python', 'php')>,\n",
" <Orthogonal('python', 'node')>,\n",
" <Orthogonal('ruby', 'julia')>,\n",
" <Orthogonal('ruby', 'nim')>,\n",
" <Orthogonal('ruby', 'rust')>,\n",
" <Orthogonal('ruby', 'typescript')>,\n",
" <Orthogonal('ruby', 'elixir')>,\n",
" <Orthogonal('ruby', 'ocaml')>,\n",
" <Orthogonal('ruby', 'clojure')>,\n",
" <Orthogonal('ruby', 'racket')>,\n",
" <Orthogonal('ruby', 'd')>,\n",
" <Orthogonal('ruby', 'elm')>,\n",
" <Orthogonal('julia', 'nim')>,\n",
" <Orthogonal('nim', 'c#')>,\n",
" <Orthogonal('rust', 'c')>,\n",
" <Orthogonal('rust', 'typescript')>,\n",
" <Orthogonal('rust', 'go')>,\n",
" <Orthogonal('rust', 'ocaml')>,\n",
" <Orthogonal('rust', 'java')>,\n",
" <Orthogonal('rust', 'kotlin')>,\n",
" <Orthogonal('rust', 'c++')>,\n",
" <Orthogonal('rust', 'swift')>,\n",
" <Orthogonal('rust', 'd')>,\n",
" <Orthogonal('c', 'scheme')>,\n",
" <Orthogonal('c', 'cl')>,\n",
" <Orthogonal('c', 'typescript')>,\n",
" <Orthogonal('c', 'go')>,\n",
" <Orthogonal('c', 'c++')>,\n",
" <Orthogonal('c', 'clojure')>,\n",
" <Orthogonal('c', 'racket')>,\n",
" <Orthogonal('scheme', 'typescript')>,\n",
" <Orthogonal('scheme', 'elixir')>,\n",
" <Orthogonal('scheme', 'c++')>,\n",
" <Orthogonal('scheme', 'clojure')>,\n",
" <Orthogonal('scheme', 'racket')>,\n",
" <Orthogonal('typescript', 'go')>,\n",
" <Orthogonal('typescript', 'java')>,\n",
" <Orthogonal('typescript', 'c++')>,\n",
" <Orthogonal('typescript', 'racket')>,\n",
" <Orthogonal('go', 'java')>,\n",
" <Orthogonal('go', 'c++')>,\n",
" <Orthogonal('go', 'clojure')>,\n",
" <Orthogonal('elixir', 'ocaml')>,\n",
" <Orthogonal('elixir', 'php')>,\n",
" <Orthogonal('elixir', 'swift')>,\n",
" <Orthogonal('elixir', 'node')>,\n",
" <Orthogonal('elixir', 'clojure')>,\n",
" <Orthogonal('elixir', 'racket')>,\n",
" <Orthogonal('elixir', 'elm')>,\n",
" <Orthogonal('ocaml', 'kotlin')>,\n",
" <Orthogonal('ocaml', 'racket')>,\n",
" <Orthogonal('ocaml', 'd')>,\n",
" <Orthogonal('java', 'kotlin')>,\n",
" <Orthogonal('java', 'c++')>,\n",
" <Orthogonal('java', 'd')>,\n",
" <Orthogonal('c++', 'swift')>,\n",
" <Orthogonal('c++', 'racket')>,\n",
" <Orthogonal('c++', 'd')>,\n",
" <Orthogonal('php', 'swift')>,\n",
" <Orthogonal('php', 'node')>,\n",
" <Orthogonal('node', 'clojure')>,\n",
" <Orthogonal('clojure', 'racket')>,\n",
" <Orthogonal('clojure', 'elm')>,\n",
" <Orthogonal('racket', 'd')>]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c.relations()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Perhaps there's another point here worth developing, which is that there is a *duality between code and coders*. Most programmers (at least among those who hang out on Lobsters) are not interpellated into a single civilization, but lead an itinerant existence during which they assemble a tool kit derived from multiple civilizations."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "VENV",
"language": "python",
"name": "venv"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment