var
    y[N],        # observations
    T[N],        # true groups (labelled 1,2)
    lambda[2],   # means of two groups
    theta,       # scaled positive shift between groups
    tau,         # sampling precision
    sigma,       # sampling standard deviation
    P[2],        # proportion in first group
    alpha[2],    # prior parameters for proportions
    ind[N,2],    # indicator function for group membership
    tot[2],      # total number of observations in each group
    Itot[2];     # Censored indicator for tot (1 if tot[i] > 0; 0 otherwise)
model {
   for (i in 1:N){
       y[i]  ~ dnorm(lambda[T[i]],tau);       
       T[i]  ~ dcat(P[])
       for (j in 1:2) {
          ind[i,j] <- T[i] == j;
       }
   }
   for (j in 1:2) {
       tot[j] <- sum(ind[,j]);
       Itot[j] ~ dinterval(tot[j], 0);
   }
   sigma     <- 1/sqrt(tau);
   tau        ~ dgamma(0.01, 0.01);
   lambda[1]  ~ dnorm(0, 1.0E-6); 
   lambda[2] <- lambda[1] + theta;
   theta      ~ dnorm(0, 1.0E-6) T(0,);
   P[]        ~ ddirch(alpha[]);    # prior for mixing proportion
   alpha[1]  <- 1;                  # uniform prior   
   alpha[2]  <- 1;
} 
