 
 public extension ActionTrailing where Self: UIControl {
 
-    func addAction(_ handle: @escaping (Self) -> Void, for controlEvents: UIControlEvents) {
-        self.setAction(handle)
+    func addAction(_ handler: @escaping (Self) -> Void, for controlEvents: UIControlEvents) {
+        self.setAction(handler)
         self.addTarget(self, action: #selector(handleAction), for: controlEvents)
     }
 }


public extension ActionTrailing where Self: NSGestureRecognizer {

    func addAction(_ handle: @escaping (Self) -> Void) {
        self.setAction(handle)
        self.action = #selector(handleAction)
        self.target = self
    }


extension ActionTrailing {

    func setAction(_ handler: @escaping (Self) -> Void) {
        objc_setAssociatedObject(
            self,
            &GlobalToken,
            ActionWrapper(handler),
            objc_AssociationPolicy.OBJC_ASSOCIATION_COPY_NONATOMIC
        )
    }
