sub add { @_ > 1 ? add( shift + shift, @_ ) : shift }