# NOTE: # this tree was taken from src/Pugs/Context.hs (~ line 89) use v6; class Perl::TypeTree-0.0.1; use Tree; has Tree $:type_tree; method tree ($self:) returns Tree { # create the tree lazily ... $self.:create_tree() unless $:tree.defined; return $:tree; } method show_tree ($self:) returns Void { $self.tree().traverse(-> $t { say((' ' x $t.depth()) ~ " " ~ $t.node()) }); } method :create_tree returns Void { $:type_tree = Tree.new().add_children( Tree.new(:node).add_children( Tree.new(:node).add_children( Tree.new(:node).add_children( Tree.new(:node).add_children( Tree.new(:node).add_children( Tree.new(:node).add_children( Tree.new(:node), Tree.new(:node), ), Tree.new(:node).add_children( Tree.new(:node), Tree.new(:node), ), ), Tree.new(:node), ), Tree.new(:node), Tree.new(:node).add_children( Tree.new(:node).add_children( Tree.new(:node).add_children( Tree.new(:node).add_children( Tree.new(:node).add_children( Tree.new(:node) ), ), ), ), Tree.new(:node), Tree.new(:node), Tree.new(:node), Tree.new(:node), Tree.new(:node), Tree.new(:node), Tree.new(:node).add_children( Tree.new(:node).add_children( Tree.new(:node).add_children( Tree.new(:node), Tree.new(:node), ), Tree.new(:node) ), Tree.new(:node).add_children( Tree.new(:node).add_children( Tree.new(:node) ), ), ), Tree.new(:node), Tree.new(:node), Tree.new(:node), Tree.new(:node), Tree.new(:node), Tree.new(:node), ), ), ), Tree.new(:node), Tree.new(:node).add_children( Tree.new(:node).add_children( Tree.new(:node).add_children( Tree.new(:node) ), ), Tree.new(:node).add_children( Tree.new(:node) ), ) ) ); }