this really can only happen at compile time (inside BEGIN or inside another UNITCHECK (though that might not work well))
add finalization handling methods to the mop::role API