pub type POrFst<A, B, C, D> = Imply<And<Q<Or<A, B>, C>, Imply<C, D>>, Imply<Not<B>, Q<A, D>>>;
Sends first argument of Logical OR to higher level.