anchor.diff:   *)
   
   /// Creates a new fresh generator.
  -let freshGen () = ref 0I
  +let freshGen () : FreshGen = ref 0I
   
   /// Takes a fresh number out of the generator.
   /// This method is NOT thread-safe.
  -let getFresh fg =
  +let getFresh (fg : FreshGen) : bigint =
       let result = !fg
       fg := !fg + 1I
       result
  
positive.code:         | ADiv (x, y) -> sexpr "/" (printIntExpr pVar) [x; y]
  
      /// Pretty-prints a Boolean expression.
      and printBoolExpr pVar =
          function
          | BVar c -> pVar c
          | BTrue -> String "true"
  
negative.code:         | BNot x -> sexpr "not" (printBoolExpr pVar) [x]
  
      /// Pretty-prints an expression.
      and printExpr (pVar : 'var -> Doc) : Expr<'var> -> Doc =
          function
          | Int a -> printIntExpr pVar a
          | Bool b -> printBoolExpr pVar b
  