impl = class_getMethodImplementation( type(of: self).self, objcSelector ) typealias CFunction = @convention(c) (AnyObject, Selector, Any) -> CGRect let callableImpl = unsafeBitCast(impl, to: CFunction.self) return layoutEngine.flatMap { callableImpl(self, objcSelector, $0) } } ASLabel