[{"name":"TreeLayout","comment":" Return x and y coordinates for a general tree, layed out according to aesthetic rules\ndefined by [(Walker, 1989)](http://www.cs.unc.edu/techreports/89-034.pdf). This implementation\nis based on the pseudo-code given in the improved algorithm that runs in linear time by\n[(Buchheim, Junger and Leipert, 2006)](http://dirk.jivas.de/papers/buchheim02improving.pdf).\nWhile providing the coordinates, this module does not render the tree to keep it generic.\n\n@docs treeLayout\n\n","unions":[],"aliases":[],"values":[{"name":"treeLayout","comment":" Return a dictionary of x and y coordinates keyed by a unique identifier for a node for a\ngiven 'distance' (used as a constant for x spacing) and 'nodes' (list of hierarchy descriptors,\nwhich are tuples of node identifier and parent node identifier, starting with the root).\n\n    [ ( \"a\", Nothing )\n    , ( \"b\", Just \"a\" )\n    , ( \"c\", Just \"a\" )\n    ]\n        |> treeLayout 2\n    --> (Dict.fromList\n            [ ( \"a\", { x = 0, y = 1 } )\n            , ( \"b\", { x = -1, y = 2 } )\n            , ( \"c\", { x = 1, y = 2 } )\n            ]\n        )\n\n**Note:** The x coordinates will have negative values as the root node will always be at 0\nand y coordinates only coincide with integers of the levels from 1 to max depth of the tree.\n\n","type":"Basics.Float -> List.List ( comparable, Maybe.Maybe comparable ) -> Dict.Dict comparable TreeLayout.Coordinate"}],"binops":[]}]