anchor.diff:          static member        instance (Negate, x:uint64    , _) = fun () -> 0UL - x
           static member        instance (Negate, x:unativeint, _) = fun () -> 0un - x
   
  -    let inline internal opPlus     (a:'Num) (b:'Num) :'Num = a + b
  -    let inline internal opMinus    (a:'Num) (b:'Num) :'Num = a - b
  -    let inline internal opMultiply (a:'Num) (b:'Num) :'Num = a * b
  +    // Strict version of math operators
  +    let inline internal ( +.) (a:'Num) (b:'Num) :'Num = a + b
  +    let inline internal ( -.) (a:'Num) (b:'Num) :'Num = a - b
  +    let inline internal ( *.) (a:'Num) (b:'Num) :'Num = a * b
   
   
   // Integral class ---------------------------------------------------------
  
positive.code: // RealFrac class ---------------------------------------------------------
  module RealFrac =
      type ProperFraction = ProperFraction with
          static member        instance (ProperFraction, x:float   , _) = fun () -> let t = truncate x in (bigint (decimal t), opMinus x t)
          static member        instance (ProperFraction, x:float32 , _) = fun () -> let t = truncate x in (bigint (decimal t), opMinus x t)
          static member        instance (ProperFraction, x:decimal , _) = fun () -> let t = truncate x in (bigint          t , opMinus x t)
          static member inline instance (ProperFraction, r:Ratio<_>, _) = fun () -> 
              let (a,b) = (numerator r, denominator r)
              let (i,f) = quotRem a b
  
negative.code:     let inline  internal denominator (Ratio(_,x)) = x
  
      type Ratio<'Integral> with
          static member inline (/) (Ratio(a,b), Ratio(c,d)) = (a *. d) </ratio/> (b *. c)
                                                
          static member inline (+) (Ratio(a,b), Ratio(c,d)) = (a *. d +. c *. b) </ratio/> (b *. d)
          static member inline (-) (Ratio(a,b), Ratio(c,d)) = (a *. d -. c *. b) </ratio/> (b *. d)
          static member inline (*) (Ratio(a,b), Ratio(c,d)) = (a *. c) </ratio/> (b *. d)
  
      type Ratio<'RA> with static member inline instance (_:Num.Abs        , r:Ratio<_>, _) = fun () -> (abs    (numerator r)) </ratio/> (denominator r)
      type Ratio<'RA> with static member inline instance (_:Num.Signum     , r:Ratio<_>, _) = fun () -> (signum (numerator r)) </ratio/> G1()
      type Ratio<'RA> with static member inline instance (_:Num.FromInteger, _:Ratio<_>) = fun (x:bigint) -> Inline.instance Num.FromInteger x </ratio/> G1()
      type Ratio<'RA> with static member inline instance (_:Num.Negate     , r:Ratio<_>, _) = fun () -> -(numerator r) </ratio/> (denominator r)
  
  type Rational = Ratio.Ratio<bigint>
  
  