!uT_      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^Trees with named nodes(c) Dominik Schrempf 2020GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNoneN elynx-treeData types with names."Rooted trees with labeled branches(c) Dominik Schrempf 2020GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone276 elynx-tree A shorthand.  elynx-tree%Rooted rose trees with branch labels.Unary instances such as _I act on node labels, and not on branch labels. Binary instances such as ` act on both labels."Lifted instances are not provided. elynx-treeConversion to a using branch labels. elynx-treeConversion to a using node labels. elynx-tree Get leaves. elynx-tree%Check if a tree has duplicate leaves. elynx-treeGet branch labels in pre-order. elynx-treeSet branch labels in pre-order.Return b4 if the provided list of branch labels is too short. elynx-tree Return node labels in pre-order. elynx-treeSet node labels in pre-order.Return b2 if the provided list of node labels is too short. elynx-treeALabel the nodes with unique integers starting at the root with 0. elynx-treeThe degree of the root node. elynx-treePrune degree two nodes._The information stored in a pruned node is lost. The branches are combined according to their c instance of the form .daughterBranch parentBranch -> combinedBranch. elynx-tree Drop nodes satisfying predicate.Degree two nodes may arise.?Also drop parent nodes of which all daughter nodes are dropped.Return b* if the root node satisfies the predicate. elynx-tree!Drop leaves satisfying predicate.Degree two nodes may arise.7Also drop parent nodes of which all leaves are dropped.Return b% if all leaves satisfy the predicate. elynx-tree%Zip two trees with the same topology.Return b! if the topologies are different. elynx-tree%Zip two trees with the same topology.Return b! if the topologies are different." elynx-treeThe cv instance of the branch labels determines how the branches are combined. For example, distances can be summed using .# elynx-treeThe cv instance of the branch labels determines how the branches are combined. For example, distances can be summed using .The dO instance of the branch labels determines the default branch label when using e.' elynx-tree!Combine node labels in pre-order.) elynx-treeMap over node labels.  Measurable branch labels(c) Dominik Schrempf 2020GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNoneF/ elynx-tree<A branch label with measurable and modifiable branch length.0 elynx-treeLength of attached branch.1 elynx-treeSet attached branch length.2 elynx-treeBranch length.3 elynx-treeLengthen the stem of a tree.4 elynx-tree%Get the length of the stem of a tree.5 elynx-tree%Set the length of the stem of a tree.6 elynx-tree/The maximum distance between origin and leaves.+The height includes the length of the stem.7 elynx-tree2The maximum distance between root node and leaves.8 elynx-tree2Distances from the origin of a tree to the leaves.-The distances include the length of the stem.9 elynx-treeTotal branch length of a tree.: elynx-tree0Normalize branch lengths so that the sum is 1.0.; elynx-tree Normalize height of tree to 1.0.< elynx-treeCheck if a tree is ultrametric.= elynx-treeBElongate terminal branches such that the tree becomes ultrametric./0123456789:;<=2/013456789:;<=Bipartitions on trees(c) Dominik Schrempf 2020GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNoneMc ? elynx-tree\Each branch of a tree partitions the leaves of the tree into two subsets, or a bipartition."The order of the two subsets of a ? is meaningless. We ensure by construction that the smaller subset comes first, and hence, that equality checks are meaningful.A elynx-treenEach node of a tree is root of an induced subtree. Set the node labels to the leaves of the induced subtrees.B elynx-tree#Create a bipartition from two sets.(Ensure that the smaller set comes first.Return f if one set is empty.C elynx-tree#Create a bipartition from two sets.(Ensure that the smaller set comes first.D elynx-tree/Conversion to a set containing both partitions.E elynx-treekShow a bipartition in a human readable format. Use a provided function to extract information of interest.F elynx-treeEFor a bifurcating root, get the bipartition induced by the root node.Return fA if - the root node is not bifurcating; - a leave set is empty.G elynx-tree!Get all bipartitions of the tree.Return f' if the tree contains duplicate leaves.H elynx-tree/Report the complementary leaves for each child.I elynx-treeConvert a tree into a g from each ?( to the branch inducing the respective ?.Since the induced bipartitions of the daughter branches of a bifurcating root node are equal, the branches leading to the root have to be combined in this case. See  Ahttp://evolution.genetics.washington.edu/phylip/doc/treedist.html+ and how unrooted trees should be handled.kFurther, branches connected to degree two nodes also induce the same bipartitions and have to be combined.[For combining branches, a binary function is required. This requirement is encoded in the c type class constraint (see ).Return f' if the tree contains duplicate leaves. ?@ABCDEFGHI A?@BCDEFGHIPartitions on rose trees(c) Dominik Schrempf 2020GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone}1O elynx-treeOEach branch of a tree partitions the leaves of the tree into two subsets (see ). In a similar way, each internal node (excluding the root node) partitions the leaves into three (or more) subsets which is called O. If the tree is multifurcating, and a specific node has more than two children, the number of subsets induced by this node is larger than three. Partitions are interesting in that we can use them for calculating incompatible splits, see .The order of the subsets of a Oz is meaningless. We ensure by construction that the subsets are ordered, and hence, that equality checks are meaningful.Q elynx-treeCreate a partition.R elynx-treeCreate a partition.S elynx-tree%Convert a bipartition to a partition.T elynx-treehShow a partition in a human readable form. Use a provided function to extract the valuable information.U elynx-tree.Get partition defined by the root of the tree.Return fB if: - the tree is a leaf; - the tree contains duplicate leaves.V elynx-treeGet all O s of a tree.Return f# if tree contains duplicate leaves.W elynx-treeOs are compatible if they do not contain conflicting information. This function checks if two partitions are compatible with each other. Thereby, a variation of the following algorithm is used: mp1 W5 mp2 for set1 in mp1: for set2 in mp2: if set1  !. set2: remove set1 from mp1 if set2  !U set1: remove set2 from mp2 if either mp2 or mp2 is empty, they are compatible OPQRSTUVW OPQRSTUVWCompute distances between trees(c) Dominik Schrempf 2020GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone2\ elynx-tree7Symmetric (Robinson-Foulds) distance between two trees._Although a rooted tree data type is used, the distance between the unrooted trees is returned.Return b' if the trees contain different leaves.:XXX: Comparing a list of trees may recompute bipartitions.] elynx-treeNumber of incompatible splits. Similar to \ but all bipartitions induced by multifurcations are considered. For a detailed description of how the distance is calculated, see ".A multifurcation on a tree may (but not necessarily does) represent missing information about the order of bifurcations. In this case, it is interesting to get a set of compatible bifurcations of the tree. For example, the star tree  (A,B,C,D);#induces the following bipartitions: A|BCD B|ACD C|ABD D|ABCUHowever, the tree is additionally compatible with the following hidden bipartitions: AB|CD AC|BD AD|BCGFor an explanation of how compatibility of partitions is checked, see W. Before using WD, bipartitions are simply converted to partitions with two subsets.nA bipartition is incompatible with a tree if it is incompatible with all induced multifurcations of the tree.JXXX: Comparing a list of trees with this function recomputes bipartitions.^ elynx-tree0Compute branch score distance between two trees._Although a rooted tree data type is used, the distance between the unrooted trees is returned.JXXX: Comparing a list of trees with this function recomputes bipartitions.\]^\]^ Topologies(c) Dominik Schrempf, 2020GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone27T _ elynx-tree A shortcut.` elynx-tree#Rooted topologies with leaf labels.e elynx-treeThe degree of the root node.f elynx-treeSet of leaves.g elynx-tree Return leaf labels in pre-order.h elynx-treeOConvert a rooted rose tree to a rooted topology. Internal node labels are lost.i elynx-treekConvert a rooted, labeled rose tree to a rooted topology. Branch labels and internal node labels are lost.j elynx-tree4Label the leaves with unique integers starting at 0.k elynx-treePrune degree two nodes.l elynx-tree!Drop leaves satisfying predicate.Degree two nodes may arise.Return b% if all leaves satisfy the predicate.m elynx-tree#Zip leaves of two equal topologies.Return b! if the topologies are different.n elynx-tree#Zip leaves of two equal topologies.Return b! if the topologies are different.o elynx-tree)Check if a topology has duplicate leaves._`abdcefghijklmno`abdc_hiefgjklmnoPhylogenetic topologies(c) Dominik Schrempf, 2020GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone#} elynx-tree7Resolve a multifurcation at the root using an outgroup.~ elynx-treeXFor a rooted topology with a bifurcating root node, get all possible rooted topologies. elynx-tree#Root a tree at a specific position.}~}~ Splittable branch labels(c) Dominik Schrempf, 2020GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableSafe elynx-tree'A data type that can be combined using h/ and split into one out of two equal entities.#The following equality should hold: split x <> split x = x  Branch label with support value(c) Dominik Schrempf 2020GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone8 elynx-treeMA branch label that supports extraction and setting of branch support values. elynx-treeBranch support. elynx-treeVNormalize branch support values. The maximum branch support value will be set to 1.0. elynx-tree6Collapse branches with support lower than given value.CThe branch and node labels of the collapsed branches are discarded. Phylogenetic trees(c) Dominik Schrempf 2020GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone79;<l elynx-tree+Strict branch label for phylogenetic trees. elynx-treeBranch support label.For conversion, see . elynx-treeBranch length label.For conversion, see  and . elynx-tree$Branch label for phylogenetic trees./Branches may have a length and a support value. elynx-treeXThe equality check is slow because the order of children is considered to be arbitrary. elynx-tree"Compute the intersection of trees.EThe intersections are the largest subtrees sharing the same leaf set.!Degree two nodes are pruned with .Return f, if: - the intersection of leaves is empty. elynx-treeCheck if a tree is bifurcating.jA Bifurcating tree only contains degree one (leaves) and degree three nodes (internal bifurcating nodes). elynx-tree7Resolve a multifurcation at the root using an outgroup.WA bifurcating root node with the provided label is introduced. The affected branch is .=Note, the degree of the former root node is decreased by one.%If the root node is bifurcating, use .Return f if - the tree has duplicate leaves; - the root node is not multifurcating; - the provided outgroup is not found on the tree or is polyphyletic. elynx-treeRoot tree at the midpoint.Return f( if - the root node is not bifurcating. elynx-treeOFor a rooted tree with a bifurcating root node, get all possible rooted trees.The root node is moved.For a tree with l=2@ leaves, there is one rooted tree. For a bifurcating tree with l>2 leaves, there are (2l-3)W rooted trees. For a general tree with a bifurcating root node, and a total number of n>2& nodes, there are (n-2) rooted trees.Moving a multifurcating root node to another branch would change the degree of the root node. Hence, a bifurcating root is required. To resolve a multifurcating root, please use .+Connect branches according to the provided c instance.xUpon insertion of the root, split the affected branch into one out of two equal entities according to a given function.Return f if the root node is not . elynx-tree#Root a tree at a specific position.sRoot the tree at the branch defined by the given bipartition. The original root node is moved to the new position.'The root node must be bifurcating (see  and ).+Connect branches according to the provided c instance.QUpon insertion of the root, split the affected branch according to the provided  instance.Return f, if: - the root node is not bifurcating; - the tree has duplicate leaves; - the bipartition does not match the leaves of the tree. elynx-tree4If root branch length is not available, set it to 0.Return f+ if any other branch length is unavailable. elynx-tree!Set all branch support values to b.KUseful, for example, to export a tree with branch lengths in Newick format. elynx-treegSet branch support values of branches leading to the leaves and of the root branch to maximum support.Return f4 if any other branch has no available support value. elynx-tree=Set all unavailable branch support values to maximum support. elynx-treeConversion to a  tree.See  and . elynx-tree,Set all branch length and support values to i the value.KUseful, for example, to export a tree with branch lengths in Newick format. /Zippers on rooted rose trees with branch labels(c) Dominik Schrempf, 2020GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone elynx-tree'Tree zipper. For reference, please see  -http://hackage.haskell.org/package/rosezipper. elynx-treeThe currently selected tree. elynx-tree%Forest to the left in reversed order. elynx-treeForest to the right elynx-treeFinger to the selected tree elynx-tree"Get a zipper pointing to the root. elynx-tree$Get the complete tree of the zipper. elynx-tree Go to parent. elynx-tree Go to root. elynx-tree%Go to left sibling in current forest. elynx-tree&Go to right sibling in current forest. elynx-tree'Go to child with given index in forest. elynx-treeGo to node with given path.j elynx-tree-Go to child with given index in forest. Call k if child does not exist. elynx-tree"Got to node with given path. Call k if path is invalid. elynx-tree7Insert a new tree into the current focus of the zipper. elynx-tree?Insert a new branch label into the current focus of the zipper. elynx-tree=Insert a new node label into the current focus of the zipper.Phylogenetic trees(c) Dominik Schrempf 2020GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNoner /0123456789:;<=?@ABCDEFGHIOPQRSTUVW\]^  Distribution of coalescent times(c) Dominik Schrempf 2018GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone elynx-treeBDistribution of the next coalescent event for a number of samples nH. The time is measured in units of effective number of population size. elynx-tree Sample size.%Data types for distributions on trees(c) Dominik Schrempf 2018GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableSafe  elynx-treeBirth or death rates. elynx-tree$Branch lengths are measured in time.8Distribution of time of origin for birth and death trees(c) Dominik Schrempf 2018GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone27~ elynx-treeDistribution of the time of origin for a phylogenetic tree evolving under the birth and death process and conditioned on observing n leaves today. elynx-treeNumber of leaves of the tree. elynx-tree Birth rate. elynx-tree Death rate. elynx-tree;Cumulative distribution function; see Mathematica notebook. elynx-treeThe density function Eq. (5). elynx-tree1The inverted cumulative probability distribution  . See also l.8Distribution of time of origin for birth and death trees(c) Dominik Schrempf 2018GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone27 elynx-treeDistribution of the time of origin for a phylogenetic tree evolving under the birth and death process and conditioned on observing n leaves today. elynx-treeNumber of leaves of the tree. elynx-tree Birth rate. elynx-tree Death rate. elynx-tree/Cumulative distribution function Corollary 3.3. elynx-treeThe density function Eq. (5). elynx-tree1The inverted cumulative probability distribution  . See also l.Birth and death distribution(c) Dominik Schrempf 2018GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone27&T elynx-treeDistribution of the values of the point process such that it corresponds to a reconstructed tree of the birth and death process.  elynx-treeTime to origin of the tree.  elynx-treeBirth and death rate.  elynx-treeBirth and death rate.  elynx-tree?Cumulative distribution function section 2.1.2, second formula. elynx-tree.Density function section 2.1.2, first formula. elynx-tree-Inverted cumulative probability distribution   . See also l.          Birth and death distribution(c) Dominik Schrempf 2018GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone270  elynx-treeDistribution of the values of the point process such that it corresponds to a reconstructed tree of the birth and death process. elynx-treeBirth and death rate. elynx-tree?Cumulative distribution function section 2.1.2, second formula. elynx-treeDensity function section 2.1.2, first formula; t cancels out because it is expected to be much larger than 1.0; because t in [0, infty]. elynx-tree-Inverted cumulative probability distribution  . See also l.Birth and death distribution(c) Dominik Schrempf 2018GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone278" elynx-treeDistribution of the values of the point process such that it corresponds to a reconstructed tree of the birth and death process.$ elynx-treeTime to origin of the tree.% elynx-treeBirth and death rate.& elynx-tree?Cumulative distribution function section 2.1.2, second formula.' elynx-tree.Density function section 2.1.2, first formula.( elynx-tree-Inverted cumulative probability distribution & . See also l."#$%&'("#$%&'(Birth and death distribution(c) Dominik Schrempf 2018GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone27AI/ elynx-treeDistribution of the values of the point process such that it corresponds to a reconstructed tree of the birth and death process.1 elynx-treeTime to origin of the tree.2 elynx-tree Birth rate.3 elynx-tree Death rate.4 elynx-tree)Cumulative distribution function Eq. (3).5 elynx-treeDensity function Eq. (2).6 elynx-tree-Inverted cumulative probability distribution 4 . See also l./0123456/0123456$Export tree objects to Newick format(c) Dominik Schrempf 2020GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNoneF= elynx-treeSee >.> elynx-tree+General conversion of a tree into a Newick #$u. Use provided functions to extract node labels and branch lengths builder objects. See also Biobase.Newick.Export.=>>=Export trees to Nexus files(c) Dominik Schrempf 2020GPL-3dominik.schrempf@gmail.comunstableportableNoneI|? elynx-tree.Export a list of (NAME, TREE) to a Nexus file.??None7T@ elynx-treeNewick tree format.Eunlines $ map (("- " <>) . description) (allValues :: [NewickFormat])U- Standard: Branch support values are stored in square brackets after branch lengths.`- IqTree: Branch support values are stored as node names after the closing bracket of forests.- RevBayes: Key-value pairs is provided in square brackets after node names as well as branch lengths. XXX: Key value pairs are ignored at the moment.D elynx-tree2Short description of the supported Newick formats.E elynx-treeAParse a single Newick tree. Also succeeds when more trees follow.F elynx-treeBParse a single Newick tree. Fails when end of file is not reached.G elynx-tree1Parse one or more Newick trees until end of file.@ABCDEFG@ABCDEFGImport trees from Nexus files(c) Dominik Schrempf 2020GPL-3dominik.schrempf@gmail.comunstableportableNoneWP elynx-tree'Parse a Nexus files with a TREES block.PPGenerate coalescent trees(c) Dominik Schrempf 2018GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone\Q elynx-tree Simulate a coalescent tree with nG leaves. The branch lengths are in units of effective population size.Q elynx-treeNumber of leaves.QQPoint process and functions(c) Dominik Schrempf 2018GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNonetR elynx-treeIf nothing, sample time of origin from respective distribution. If time is given, we need to know if we condition on the time of origin, or the time of the most recent common ancestor (MRCA).S elynx-treeA  point process for n points and of age t_{or}C is defined as follows. Draw $n$ points on the horizontal axis at  1,2,\ldots,n. Pick n-1 points at locations  (i+1/2, s_i), i=1,2,\ldots,n-1; 0 < s_i < t_{or}b. There is a bijection between (ranked) oriented trees and the point process. Usually, a will be m (or n) and b will be o.X elynx-tree!Sample a point process using the /,. The names of the points will be integers.Y elynx-treeSee Z, but n times.Z elynx-tree=Use the point process to simulate a reconstructed tree (see [g) possibly with specific height and a fixed number of leaves according to the birth and death process.[ elynx-tree?Convert a point process to a reconstructed tree. See Lemma 2.2.X elynx-treeNumber of points (samples) elynx-treeTime of origin or MRCA elynx-tree Birth rate elynx-tree Death rate elynx-treeGenerator (see %&)Y elynx-treeNumber of trees elynx-treeNumber of points (samples) elynx-treeTime of origin or MRCA elynx-tree Birth rate elynx-tree Death rate elynx-treeGenerator (see %&)Z elynx-treeNumber of points (samples) elynx-treeTime of origin or MRCA elynx-tree Birth rate elynx-tree Death rate elynx-treeGenerator (see %&) RSTUVWXYZ[ STUVWRX[ZY'Safeu/pqrstuvwx()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0254?8>@BCD9                    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTTUVWRXYZ[\]^_`^abcd1^ef^_g^_h^_i^jkclm^_n^eo p^qrstu^_vwxywxz'{'|'}'~'''''elynx-tree-0.3.2-D4z8hEm7d0IGPFAaza2gb3ELynx.Data.Tree.NamedELynx.Data.Tree.RootedELynx.Data.Tree.MeasurableELynx.Data.Tree.BipartitionELynx.Data.Tree.PartitionELynx.Data.Tree.DistanceELynx.Data.Topology.RootedELynx.Data.Topology.PhylogenyELynx.Data.Tree.SplittableELynx.Data.Tree.SupportedELynx.Data.Tree.PhylogenyELynx.Data.Tree.Zipper'ELynx.Distribution.CoalescentContinuousELynx.Distribution.Types+ELynx.Distribution.TimeOfOriginNearCriticalELynx.Distribution.TimeOfOrigin+ELynx.Distribution.BirthDeathNearlyCritical+ELynx.Distribution.BirthDeathCriticalNoTime%ELynx.Distribution.BirthDeathCriticalELynx.Distribution.BirthDeathELynx.Export.Tree.NewickELynx.Export.Tree.NexusELynx.Import.Tree.NewickELynx.Import.Tree.NexusELynx.Simulate.CoalescentELynx.Simulate.PointProcessData.SemigroupSumELynx.Data.Tree BipartitionDistanceS isSubSetOfbipartitionCompatibleBL Bytestring System.RandomMWCPaths_elynx_treeNamedgetName$fNamedByteString$fNamedByteString0 $fNamedChar $fNamedDouble $fNamedInt $fNamed()ForestTreeNodebranchlabelforesttoTreeBranchLabelstoTreeNodeLabelsleavesduplicateLeavesbranches setBrancheslabels setLabelsidentifydegreeprune dropNodesWithdropLeavesWith zipTreesWithzipTrees$fFromJSONTree $fToJSONTree $fNFDataTree $fComonadTree$fMonadFixTree $fMonadTree$fApplicativeTree$fBitraversableTree$fTraversableTree$fBifoldableTree$fFoldableTree$fBifunctorTree $fFunctorTree$fEqTree $fReadTree $fShowTree $fDataTree $fGenericTree MeasurablegetLensetLen BranchLength applyStemgetStemsetStemheight rootHeightdistancesOriginLeavestotalBranchLengthnormalizeBranchLengthsnormalizeHeight ultrametricmakeUltrametric$fMeasurableDoublefromBipartitiongroupsbpbpUnsafetoSetbpHuman bipartition bipartitionsgetComplementaryLeavesbipartitionToBranch$fEqBipartition$fOrdBipartition$fShowBipartition$fReadBipartition$fNFDataBipartition Partition fromPartitionmpmpUnsafebpToMpmpHuman partition partitions compatible $fEqPartition$fOrdPartition$fShowPartition$fReadPartition symmetricincompatibleSplits branchScoreTopologyLeafflattenfromTreefromLabeledTree$fFromJSONTopology$fToJSONTopology$fNFDataTopology$fMonadTopology$fApplicativeTopology$fTraversableTopology$fFoldableTopology$fFunctorTopology $fEqTopology$fReadTopology$fShowTopology$fDataTopology$fGenericTopologyoutgrouprootsrootAt Splittablesplit$fSplittableDouble SupportedgetSupsetSup BranchSupportnormalizeBranchSupportcollapse PhyloStrictsBrLensBrSupSupport fromSupportLength fromLengthPhylobrLenbrSupequal intersect bifurcatingmidpointphyloToLengthTreelengthToPhyloTreephyloToSupportTreephyloToSupportTreeUnsafe toStrictTreefromStrictTree$fFromJSONPhylo $fToJSONPhylo$fSemigroupPhylo$fFromJSONLength$fToJSONLength$fSplittableLength$fMeasurableLength$fFromJSONSupport$fToJSONSupport$fSplittableSupport$fSupportedSupport$fFromJSONPhyloStrict$fToJSONPhyloStrict$fSupportedPhyloStrict$fSplittablePhyloStrict$fMeasurablePhyloStrict$fSemigroupPhyloStrict $fReadPhylo $fShowPhylo $fEqPhylo $fOrdPhylo$fGenericPhylo $fNFDataPhylo $fReadLength $fShowLength $fEqLength $fOrdLength$fGenericLength$fNFDataLength $fNumLength$fFractionalLength$fFloatingLength$fSemigroupLength$fMonoidLength $fReadSupport $fShowSupport $fEqSupport $fOrdSupport$fGenericSupport$fNFDataSupport $fNumSupport$fFractionalSupport$fFloatingSupport$fSemigroupSupport$fReadPhyloStrict$fShowPhyloStrict$fEqPhyloStrict$fOrdPhyloStrict$fGenericPhyloStrictTreePosPoscurrentbeforeafterparentstoTreegoUpgoRootgoLeftgoRightgoChildgoPath unsafeGoPath insertTree insertBranch insertLabel $fShowTreePos $fEqTreePoscoalescentDistributionContRateTime$TimeOfOriginNearCriticalDistributionTONCDtodTNtodLatodMu cumulativedensityquantile-$fContGenTimeOfOriginNearCriticalDistribution/$fContDistrTimeOfOriginNearCriticalDistribution2$fDistributionTimeOfOriginNearCriticalDistribution($fEqTimeOfOriginNearCriticalDistribution*$fDataTimeOfOriginNearCriticalDistribution-$fGenericTimeOfOriginNearCriticalDistributionTimeOfOriginDistributionTOD!$fContGenTimeOfOriginDistribution#$fContDistrTimeOfOriginDistribution&$fDistributionTimeOfOriginDistribution$fEqTimeOfOriginDistribution$fDataTimeOfOriginDistribution!$fGenericTimeOfOriginDistribution$BirthDeathNearlyCriticalDistributionBDNCDbdncdTOrbdncdLabdncdMu-$fContGenBirthDeathNearlyCriticalDistribution/$fContDistrBirthDeathNearlyCriticalDistribution2$fDistributionBirthDeathNearlyCriticalDistribution($fEqBirthDeathNearlyCriticalDistribution*$fDataBirthDeathNearlyCriticalDistribution-$fGenericBirthDeathNearlyCriticalDistribution$BirthDeathCriticalNoTimeDistributionBDCNTDbdcntdLa-$fContGenBirthDeathCriticalNoTimeDistribution/$fContDistrBirthDeathCriticalNoTimeDistribution2$fDistributionBirthDeathCriticalNoTimeDistribution($fEqBirthDeathCriticalNoTimeDistribution*$fDataBirthDeathCriticalNoTimeDistribution-$fGenericBirthDeathCriticalNoTimeDistributionBirthDeathCriticalDistributionBDCDbdcdTOrbdcdLa'$fContGenBirthDeathCriticalDistribution)$fContDistrBirthDeathCriticalDistribution,$fDistributionBirthDeathCriticalDistribution"$fEqBirthDeathCriticalDistribution$$fDataBirthDeathCriticalDistribution'$fGenericBirthDeathCriticalDistributionBirthDeathDistributionBDDbddTOrbddLabddMu$fContGenBirthDeathDistribution!$fContDistrBirthDeathDistribution$$fDistributionBirthDeathDistribution$fEqBirthDeathDistribution$fDataBirthDeathDistribution$fGenericBirthDeathDistributiontoNewickBuildertoNewick toNexusTrees NewickFormatStandardIqTreeRevBayes descriptionnewick oneNewick someNewick$fToJSONNewickFormat$fFromJSONNewickFormat$fEqNewickFormat$fShowNewickFormat$fReadNewickFormat$fBoundedNewickFormat$fEnumNewickFormat$fGenericNewickFormat nexusTreessimulateTimeSpec PointProcesspointsvaluesoriginsimulateNReconstructedTreessimulateReconstructedTreetoReconstructedTree$fReadPointProcess$fShowPointProcess$fEqPointProcessbaseGHC.BaseFunctorData.Bifunctor Bifunctorcontainers-0.6.0.1 Data.Tree GHC.MaybeNothing SemigroupMonoidpure Data.EitherLeftData.Map.InternalMap<>Just unsafeGoChildGHC.Errerror*statistics-0.15.2.0-KGciVxa9bBcJBBE9RuizMxStatistics.Distribution ContDistrStringghc-prim GHC.TypesIntDoubleversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName