anchor.diff:  type TestData = { NumberOfTests: int; Stamps: seq<int * list<string>>}
   type TestResult = 
       | True of TestData
  -    | False of TestData * list<string> //the arguments that produced the failed test
  +    | False of TestData * list<obj> //the arguments that produced the failed test
       | Exhausted of TestData
   type IRunner =
  -    abstract member OnArguments: int * list<string> * (int -> list<string> -> string) -> unit
  +    abstract member OnArguments: int * list<obj> * (int -> list<obj> -> string) -> unit
       abstract member OnFinished: string * TestResult -> unit
   
   type Config = 
  
positive.code: let evaluate (Prop gen) = gen
  
  let forAll gn body = 
      let argument a res = { res with arguments = any_to_string a :: res.arguments } in
      Prop <|  gen { let! a = gn
                     let! res = (evaluate (body a))
                     return (argument a res) }
  
negative.code:               runner  = consoleRunner } 
           
  let verbose = 
      { quick with every = fun n args -> any_to_string n + ":\n" + (args |> List.fold_left (fun b a -> any_to_string a + "\n" + b) "")  }
  
  let quickCheck p = p |> check quick
  let verboseCheck p = p |> check verbose
  