As discussed it was done purely to ensure the evaluation of abstract declarations within the trait. I agree with you (as per our chat) that Action should be a class and not a trait. My view is an Action IsA action and that objects typically aren't embellished with action behaviour (HasA). I shall add such a comment to JR's PR re. result re-factoring.