pub trait RuleLike { type A: Action<Single>; type P: PredicateInner; // Required methods fn action(&self) -> &Self::A; fn predicate(&self) -> &Predicate<Self::P>; }