Allow implementations and roles to declare semiprivate subs.
Now have declare cmp as semiprivate to make it usable.