anchor.diff:          type Power() =
               static member inline Power(x : sbyte, y : sbyte) = pown x (int y)
               static member inline Power(x : int16, y : int16) = pown x (int y)
  -            static member inline Power(x : int32, y : int32) = pown x (int y)
  +            static member inline Power(x : int32, y : int32) = pown x y
               static member inline Power(x : int64, y : int64) = pown x (int y)
   
               static member inline Power(x : byte, y : byte) = pown x (int y)
  
positive.code:         let two : ^b = one + one
          let three : ^b = two + one
          let t = saturate ((x - edge0) / (edge1 - edge0))
          t * t * (three - two * t)
negative.code:         let inline log2Aux (_ : ^z) (x : ^a) =
              ((^z or ^a) : (static member Log2 : ^a  -> ^a) x)
  
          let inline cbrtAux (_ : ^z) (x : ^a) =
              ((^z or ^a) : (static member Cbrt : ^a  -> ^a) x)
          
          let inline minAux (_ : ^z) (x : ^a) (y : ^b) =
              ((^z or ^a or ^b or ^c) : (static member Min : ^a * ^b -> ^c) (x, y))
  
          let inline maxAux (_ : ^z) (x : ^a) (y : ^b) =
              ((^z or ^a or ^b or ^c) : (static member Max : ^a * ^b -> ^c) (x, y))
  
          let inline clampAux (_ : ^z) (a : ^a) (b : ^b) (x : ^c) =
              ((^z or ^a or ^b or ^c or ^d) : (static member Clamp : ^c * ^a * ^b -> ^d) (x, a, b))
  
      /// Resolves to the zero value for any scalar or vector type.
      let inline zero< ^T when ^T : (static member Zero : ^T) > : ^T =
  