Dendogram

Similarly to Tree, Dendogram is a renderable that can be used to visualize hierarchical data:

import Term.Dendograms: Dendogram

dendo = Dendogram("trunk", "the", "tree", "has", "leaves")
print(dendo)
                      trunk
     ┌────────────┬──────┴─────┬────────────┐     
    the         tree          has        leaves   

As you can see, the first argument is the "trunk" or title of the dendogram while all other arguments are added as leaves. Compare it to a Tree renderable:

import Term: Tree
print(
    Tree(
        Dict(:a=>"the", :b=>"tree", :c=>"has", :d=>"leaves")
    )
)
Dict(:a => "the", :b => "tree", :d => "leave
  s", :c => "has")
  ├─ a  the
  ├─ b  tree
  ├─ d  leaves
  └─ c  has

If you've seen Tree, you'll know that Tree can handle nested hierarchical structures, what about Dendogram? The way you do that is by linking individual dendograms:

import Term.Dendograms: link

mydend = Dendogram("first", [1, 2])
otherdend = Dendogram("other", [:a, :b])

print(
    link(mydend, link(otherdend, otherdend; title="another level"); title="One level")
)
                         One level
            ┌─────────────────┴────────────────┐                        
         first                           another level
     ┌──────┴─────┐                 ┌───────────┴──────────┐            
     1            2              other                   other
                             ┌──────┴─────┐          ┌──────┴─────┐     
                             a            b          a            b