public virtual void Visit(TContext context, IAuthority authority) { authority.Accept(this, context); }