forall<T, U> { IsLocal(Box<T>) :- IsLocal(T) }
forall<T, U> { IsLocal(Box<T>) :- IsLocal(U) }
forall<T, U> { IsUpstream(Box<T, U>) :- IsUpstream(T), IsUpstream(U) }
forall<T, U> { DownstreamType(Box<T, U>) :- DownstreamType(T). }
forall<T, U> { DownstreamType(Box<T, U>) :- DownstreamType(U). }