anchor.diff:      if (numStates == 1) didFire.send;
     endrule
   
  -  // LFSRs: loading, storing, saving, and restoring
  +  // PRNGs: loading, storing, saving, and restoring
     // ----------------------------------------------
   
  -  RotatingQueue#(Bit#(16)) shadows <- mkRotatingQueue(numLFSRs);
  +  RotatingQueue#(Bit#(32)) shadows <- mkRotatingQueue(numPRNGs);
     Reg#(Bit#(32)) iterCount         <- mkReg(0);
     Reg#(Bool) loopDone              <- mkReg(False);
   
  -  // Copy the value of each LFSR to the corresponding shadow register
  -
  -  rule ruleSaveLFSRs (saveLFSRs);
  -    function Bit#(16) f(LFSR16 x) = x.value;
  -    shadows.store(List::map(f, lfsrs));
  +  // Copy the value of each PRNG to the corresponding shadow register
  +
  +  rule ruleSavePRNGs (savePRNGs);
  +    function Bit#(32) f(PRNG16 x) = x.value;
  +    shadows.store(List::map(f, prngs));
     endrule
   
  -  // Copy the value of each shadow register the to corresponding LFSR
  -
  -  rule ruleRestoreLFSRs (seeded && !actionsEnabled && restoreLFSRs);
  -    function Action f(LFSR16 x, Bit#(16) y) = x.seed(y);
  -    let _ <- List::zipWithM(f, lfsrs, shadows.load);
  +  // Copy the value of each shadow register the to corresponding PRNG
  +
  +  rule ruleRestorePRNGs (seeded && !actionsEnabled && restorePRNGs);
  +    function Action f(PRNG16 x, Bit#(32) y) = x.seed(y);
  +    let _ <- List::zipWithM(f, prngs, shadows.load);
     endrule
   
  -  // Load a file of seeds into the shadow LFSRs
  +  // Load a file of seeds into the shadow PRNGs
   
     Stmt loadFromFile = 
       seq
  
positive.code:   let invariantBools = concat(map(getInvariantItem, items));
    let preStmt        = seqList(concat(map(getPreStmtItem, items)));
    let postStmt       = seqList(concat(map(getPostStmtItem, items)));
    let lfsrItems      = concat(map(getLFSRItem, items));
    let actionApps     = map(tpl_2, actionItems);
    let stmtApps       = map(tpl_2, stmtItems);
    let actionMsgs     = map(formatApp, actionApps);
  
negative.code: function Stmt seqList(List#(Stmt) xs);
    if (xs matches tagged Nil) return (seq delay(1); endseq);
    else return (seq List::head(xs); seqList(List::tail(xs)); endseq);
  endfunction
  
  // ============================================================================
  