         @usableFromInline
         init() {
             self.index = 0
-            self.list = CacheArray(cache: [CacheArray.Element()])
+            self.list = CacheArray([CacheArray.Element()])
         }
         
         @usableFromInline

    class CacheArray {
        
        let lck = SDLock()
        var cache: [Element]
        
        @usableFromInline
        init(cache: [Element]) {
            self.cache = cache
        }
    }
}

        
        let components = self.components
        var segments = ArraySlice(components.flatMap { $0.segments })
        let cache = Shape.Component.CacheArray(components.map { component in component.cache.lck.synchronized { component.cache._values } })
        
        self.components.removeAll(keepingCapacity: true)
        
        for (index, var component) in components.enumerated() {
            component.segments = segments.popFirst(component.count)
            component.cache = Shape.Component.Cache(index: index, list: cache)
            self.components.append(component)
        }
    }
