         self.b4 = b4
         self.b5 = b5
     }
-    public typealias Difference = BernsteinPolynomial4
+    public typealias NextLowerOrderPolynomial = BernsteinPolynomial4
     public var b0, b1, b2, b3, b4, b5: CGFloat
     public var coefficients: [CGFloat] { return [b0, b1, b2, b3, b4, b5] }
     public func difference(a1: CGFloat, a2: CGFloat) -> BernsteinPolynomial4 {

        self.b1 = b1
        self.b2 = b2
    }
    public typealias Difference = BernsteinPolynomial1
    public var b0, b1, b2: CGFloat
    public var coefficients: [CGFloat] { return [b0, b1, b2] }
    public func difference(a1: CGFloat, a2: CGFloat) -> BernsteinPolynomial1 {

        self.b3 = b3
        self.b4 = b4
    }
    public typealias NextLowerOrderPolynomial = BernsteinPolynomial3
    public var b0, b1, b2, b3, b4: CGFloat
    public var coefficients: [CGFloat] { return [b0, b1, b2, b3, b4] }
    public func difference(a1: CGFloat, a2: CGFloat) -> BernsteinPolynomial3 {
