anchor.diff:                  override x.Shrinker a = ReflectArbitrary.reflectShrink getShrink a
               }
               
  -        //TODO: add sbyte, float32, int16, BigInteger, decimal, Generic.Collections types, Map+        //TODO: add sbyte, float32, BigInteger, decimal, Generic.Collections
positive.code:             let gen =
                  Gen.two generate<DontSize<int32>>
                  |> Gen.map (fun (DontSize h, DontSize l) -> (int64 h <<< 32) ||| int64 l)                
              fromGenShrink (gen,Default.GenericValueShrinker)
              |> convert DontSize DontSize.Unwrap
          
          ///Generates arbitrary floats, NaN, NegativeInfinity, PositiveInfinity, Maxvalue, MinValue, Epsilon included fairly frequently.
  
negative.code:             fromGenShrink(gen, shrink)
              |> convert (int16 >> DontSize) (DontSize.Unwrap >> int)
              
          ///Generate arbitrary int32 that is between -size and size.
          static member Int32() = 
              { new Arbitrary<int>() with
                  override x.Generator = Gen.sized <| fun n -> Gen.choose (-n,n) 
                  override x.Shrinker n = shrinkNumber n
              }
  
          ///Generate arbitrary int32 that is between Int32.MinValue and Int32.MaxValue
  