@@ -0,0 +1,2069 @@
+package mb.p_raffrayi.impl.tokens;%0A%0Aimport org.immutables.value.Value;%0Aimport org.metaborg.util.future.IFuture;%0A%0Aimport mb.p_raffrayi.actors.IActorRef;%0Aimport mb.p_raffrayi.impl.IUnit;%0Aimport mb.p_raffrayi.nameresolution.DataLeq;%0Aimport mb.p_raffrayi.nameresolution.DataWf;%0Aimport mb.scopegraph.ecoop21.LabelOrder;%0Aimport mb.scopegraph.ecoop21.LabelWf;%0Aimport mb.scopegraph.oopsla20.path.IScopePath;%0Aimport mb.scopegraph.oopsla20.reference.Env;%0A%0A@Value.Immutable(prehash = false)%0Apublic abstract class APQuery%3CS, L, D%3E implements IWaitFor%3CS, L, D%3E %7B%0A%0A    @Override @Value.Parameter public abstract IActorRef%3C? extends IUnit%3CS, L, D, ?%3E%3E origin();%0A%0A    @Value.Parameter public abstract IScopePath%3CS, L%3E path();%0A%0A    // @Value.Parameter public abstract LabelWF%3CL%3E labelWF();%0A%0A    @Value.Parameter public abstract DataWf%3CS, L, D%3E dataWF();%0A%0A    // @Value.Parameter public abstract LabelOrder%3CL%3E labelOrder();%0A%0A    // @Value.Parameter public abstract DataLeq%3CD%3E dataEquiv();%0A%0A    @Value.Parameter public abstract IFuture%3CEnv%3CS, L, D%3E%3E future();%0A%0A    @Override public void visit(Cases%3CS, L, D%3E cases) %7B%0A        cases.on((PQuery%3CS, L, D%3E) this);%0A    %7D%0A%0A    public static %3CS, L, D%3E PQuery%3CS, L, D%3E of(IActorRef%3C? extends IUnit%3CS, L, D, ?%3E%3E origin, IScopePath%3CS, L%3E path,%0A            @SuppressWarnings(%22unused%22) LabelWf%3CL%3E labelWF, DataWf%3CS, L, D%3E dataWF,%0A            @SuppressWarnings(%22unused%22) LabelOrder%3CL%3E labelOrder,%0A            @SuppressWarnings(%22unused%22) DataLeq%3CS, L, D%3E dataEquiv, IFuture%3CEnv%3CS, L, D%3E%3E future) %7B%0A        return PQuery.of(origin, path, dataWF, future);%0A    %7D%0A%0A    /*%0A     * CAREFUL%0A     * For this class, hashCode and equals are simplified to reference equality for performance.%0A     * This is possible because we never create a new instance which is used in isWaitingFor.%0A     * The tokens CloseScope & CloseLabel are created for such checks, and must have structural equality.%0A     */%0A%0A    @Override public int hashCode() %7B%0A        return super.hashCode();%0A    %7D%0A%0A    @Override public boolean equals(Object obj) %7B%0A        return this == obj;%0A    %7D%0A%0A%7D

Add missing PQuery token class