 }
 
 @warn_unused_result
-public func BezierDerivative(t: Double, _ p: Double ... ) -> Double {
-    return Bezier(t, BezierDerivative(p))
-}
-
-@warn_unused_result
-public func BezierDerivative(t: Double, _ p: Point ... ) -> Point {
-    return Bezier(t, BezierDerivative(p))
-}
-
-@warn_unused_result
-public func BezierDerivative(t: Double, _ p: Vector ... ) -> Vector {
-    return Bezier(t, BezierDerivative(p))
-}
-
-@warn_unused_result
 public func BezierDerivative(p: Double ... ) -> [Double] {
     return BezierDerivative(p)
 }

}

private func BezierDerivative(p: [Vector]) -> [Vector] {
    let n = Double(p.count)
    var de = [Vector]()
    var lastPoint = p.first!
    for current in p.dropFirst() {

}

private func BezierDerivative(p: [Double]) -> [Double] {
    let n = Double(p.count - 1)
    var de = [Double]()
    var lastPoint = p.first!
    for current in p.dropFirst() {
