     }
     
 }
+
+public protocol Animatable {
+}
+
+extension UIView: Animatable {
+}
+
+extension CALayer: Animatable {
+}


import Foundation

public protocol Animatable {
}

extension UIView: Animatable {
}

extension CALayer: Animatable {
}

public extension UIView {
    
    public func mr_startAnimations(closure: ((AnimationAnimator) -> Void), completion: AnimationComplection? = nil) {
        let animator = AnimationAnimator(view: self)
        closure(animator)


public extension CALayer {
    
    /// Creates a AnimationAnimator to build up animations
    ///
    /// - Parameters:
    ///   - closure: scope within which you can build up animations which you wish to apply to the layer.
    ///   - completion: executed when the animation sequence ends.
    public func mr_startAnimations(closure: ((AnimationAnimator) -> Void), completion: AnimationComplection? = nil) {
        let animator = AnimationAnimator(layer: self)
        closure(animator)
