anchor.diff:    endmodule
   endinstance
   
  +// Base case 2: execute action.
  +instance Prop#(Action);
  +  module [BlueCheck] pr#(List#(Fmt) app, Frequency fr, Action a) ();
  +    Action act = action $display(formatApp(app)); a; endaction;
  +    addToCollection(tagged ActionItem (tuple2(fr, act)));
  +  endmodule
  +endinstance
  +
  +// Base case 3: execute action-value
  +instance Prop#(ActionValue#(t))
  +  provisos(Eq#(t), Bits#(t, n));
  +  module [BlueCheck] pr#(List#(Fmt) app, Frequency fr, ActionValue#(t) a) ();
  +    Action act =
  +      action
  +        $display(formatApp(app));
  +        t aVal <- a;
  +        $display("   (Returned ", aVal, ")");
  +      endaction;
  +      addToCollection(tagged ActionItem (tuple2(fr, act)));
  +  endmodule
  +endinstance
  +
   // Recursive case.
   instance Prop#(function b f(a x))
     provisos(Prop#(b), Bits#(a, n), Bounded#(a), FShow#(a));
  
positive.code: 
  // Turn the list of items gathered in a BlueCheck module into an
  // actual equivalence checker.
  module [Module] blueCheck#(BlueCheck#(Empty) bc)();
    // Extract items.
    let {_, items} <- getCollection(bc);
    let actionItems = concat(map(getActionItem, items));
  
negative.code:     end
  
    // No-op.
    rule noOp (count > 0 && state == 0);
      $display("No-op");
    endrule
  
    rule initialise (goFlag && count == 0);
      randomState.cntrl.init;
      count <= 1;
    endrule
  