anchor.diff:              |> filter ((<>) 0)
               |> convert NonZeroInt int
   
  -        /// Generates an Float (without NaN, Infinity)
  -        static member NormalFloat() =
  -            Default.Float()
  -            |> filter (fun f -> not <| System.Double.IsNaN(f) &&
  -                                not <| System.Double.IsInfinity(f))
  -            |> convert NormalFloat float
  -
           static member IntWithMinMax() =
               { new Arbitrary<IntWithMinMax>() with
                   override __.Generator = Gen.frequency [(1 ,Gen.elements [Int32.MaxValue; Int32.MinValue])
  
positive.code:             fromGenShrink (gen,shrink)
              |> convert DoNotSize DoNotSize.Unwrap
  
          ///Generates arbitrary floats, NaN, NegativeInfinity, PositiveInfinity, Maxvalue, MinValue, Epsilon included fairly frequently.
          static member Float() = 
              let generator =
                  Gen.frequency [(6, Gen.map3 Default.fraction generate generate generate)
  
negative.code:                 |> Seq.distinct
              fromGenShrink(generator, shrinker)
  
          /// Generates a "normal" 64 bit floats (without NaN, Infinity, Epsilon, MinValue, MaxValue)
          static member NormalFloat() =
              fromGenShrink(Gen.map3 Default.fraction generate generate generate, Default.Float().Shrinker)
              |> convert NormalFloat float
  
          ///Generates arbitrary 32 bit floats, NaN, NegativeInfinity, PositiveInfinity, Maxvalue, MinValue, Epsilon included fairly frequently.
          static member Float32() = 
              let generator =
                  let fraction a b c = float32 (Default.fraction a b c)
  