anchor.diff:      /// <typeparam name="var">
       ///     The type of variables in the expression.
       /// </typeparam>
  +    
       type Expr<'var> = Typed<IntExpr<'var>, BoolExpr<'var>>
   
       /// <summary>
  
positive.code:                   | y       -> Some (y :: s)
                  )
                  []
                  xs with
          | Some []  -> BTrue
          | Some [x] -> x
          | Some xs  -> BAnd (List.rev xs)
          | None     -> BFalse
      // A Boolean equality between two contradictions or tautologies is always true.
      | BBEq (x, y)  ->
  
negative.code:         | BLt of IntExpr<'var> * IntExpr<'var>
          | BNot of BoolExpr<'var>
          override this.ToString () = sprintf "%A" this
          // override this.Equals = foo 
  
      /// Type for fresh variable generators.
      type FreshGen = bigint ref
  