package Node;
use constant FIRST_IDX => 0;
use constant IDX_PARENT => FIRST_IDX + 0;
use constant NEXT_IDX => FIRST_IDX + 1;
####
package ElementNode;
BEGIN { our @ISA = 'Node'; }
use constant FIRST_IDX => __PACKAGE__->SUPER::NEXT_IDX();
use constant IDX_NAME => FIRST_IDX + 0;
use constant IDX_ATTS => FIRST_IDX + 1;
use constant NEXT_IDX => FIRST_IDX + 2;
####
use constant IDX_PARENT => __PACKAGE__->SUPER::IDX_PARENT();
####
package Node;
use constant FIRST_IDX => 0;
use constant IDX_PARENT => FIRST_IDX + 0;
use constant IDX_ISROOT => FIRST_IDX + 1;
use constant NEXT_IDX => FIRST_IDX + 2;