anchor.diff:      ///     <c>true</c> if the command is a no-op;
       ///     <c>false</c> otherwise.
       /// </returns>
  -    let isNop =
  +    let isNop : Command -> bool =
           List.forall
               (fun { Results = ps } ->
                     ps = [])
  
positive.code:     let printPrimCommand { Name = name; Args = xs; Results = ys } = 
          hjoin [ commaSep <| Seq.map (printCTyped String) ys; " <- " |> String; name |> String; String " "; commaSep <| Seq.map printSMExpr xs ]
  
      let printCommand = List.map printPrimCommand >> semiSep
  
negative.code:     ///     The next available intermediate stage number.
      ///     If the expression has no intermediate stages, we return 0.
      /// </returns>
      let rec nextIntIntermediate : IntExpr<Sym<_>> -> bigint =
          function
          | AVar (Reg (Intermediate (n, _))) -> n + 1I
          | AVar (Sym { Params = xs } ) ->
  