More involved Moose example from Stevan Little
- new has features
- predicate => 'predicate name' - Creates a method that returns a boolean value that checks to see if the attribute is set
- handles => ARRAY HASH REGEXP | CODE - automated delegation
- Tree->add_sibling() is really Tree->parent()->add_child()
- meta
- Access to your classes meta object for introspection
- no moose;
- remove all moose exported sub from the current namespace.