     let split = SplitBezier(t, subpath)
     return ([p.first!] + split.0, split.1 + [p.last!])
 }
-func SplitBezier(_ t: [Double], _ p: [Point]) -> [[Point]] {
+@_transparent
+private func SplitBezier(_ t: [Double], _ p: [Point]) -> [[Point]] {
     var result: [[Point]] = []
     var remain = p
     var last_t = 0.0

}

extension Radius: CustomStringConvertible {
    public var description: String {
        return "{x: \(x), y: \(y)}"
    }

    return result
}

@_transparent
private func Bezier(_ t: Double, _ p: [Vector]) -> Vector {
    var result = Vector()
    let _n = p.count - 1
    for (idx, k) in CombinationList(UInt(_n)).enumerated() {
