 }
 
 // (A1, A2) -> R
-public func weakify<T: AnyObject, A1, A2, R>(object: T, block: (T) -> (A1, A2) -> R?) -> (A1, A2) -> R? {
+public func weakify<T: AnyObject, A1, A2, R>(object: T, _ block: (T) -> (A1, A2) -> R?) -> (A1, A2) -> R? {
     weak var weakObject = object
     return { (a1, a2) in
         if let strongObject = weakObject {

}

// (A1, A2) -> Void
public func weakify<T: AnyObject, A2, A1>(object: T, block: (T) -> (A1, A2) -> Void) -> (A1, A2) -> Void {
    weak var weakObject = object
    return { (a1, a2) in
        if let strongObject = weakObject {

}

// (A1) -> R
public func weakify<T: AnyObject, A1, R>(object: T, _ block: (T) -> (A1) -> R?) -> (A1) -> R? {
    weak var weakObject = object
    return { (a1) in
        if let strongObject = weakObject {
