 //	MARK: Box Class
 
 /**
- `Box`
+    `Box`
  
- Boxes a value to be able to use it with Objective-C.
+    Boxes a value to be able to use it with Objective-C.
  */
 private class Box<T> {
     /// The value boxed within this class.
     let value: T
     
     /**
-     Initializes a boxed value with the value to box.
+        Initializes a boxed value with the value to box.
      
-     - Parameter value:  The value to box.
+        - Parameter value:  The value to box.
      
-     - Returns:  An initialized box with the given value.
+        - Returns:  An initialized box with the given value.
      */
     init(value: T) {
         self.value = value

//	MARK: UITextField Closures Extension

/**
 `UITextField`
 
 This extension to UITextField adds the ability to assign closures to what would usually need to be delegate methods.
 */
public extension UITextField {
    
    //	MARK: Associated Keys Struct
    
    /**
     `AssociatedKeys`
     
     A private struct which holds the keys for retrieving associated values.
     */
    private struct AssociatedKeys {
        /// The handle for retrieving or storing the text field delegate as an associated value.
        static var textFieldDelegateHandle: NSString = "textFieldDelegateHandle"
        
        /// The handle for retrieving or storing the `shouldBeginEditingClosure` as an associated value.
        static var textFieldShouldBeginEditingHandle: NSString = "textFieldShouldBeginEditingHandle"
        /// The handle for retrieving or storing the `shouldEndEditingClosure` as an associated value.
        static var textFieldShouldEndEditingHandle: NSString = "textFieldShouldEndEditingHandle"
        
        /// The handle for retrieving or storing the `didBeginEditingClosure` as an associated value.
        static var textFieldDidBeginEditingHandle: NSString = "textFieldDidBeginEditingHandle"
        /// The handle for retrieving or storing the `didEndEditingClosure` as an associated value.
        static var textFieldDidEndEditingHandle: NSString = "textFieldDidEndEditingHandle"
        
        /// The handle for retrieving or storing the `shouldChangeCharactersClosure` as an associated value.
        static var textFieldShouldChangeCharactersHandle: NSString = "textFieldShouldChangeCharactersHandle"
        
        /// The handle for retrieving or storing the `shouldClearClosure` as an associated value.
        static var textFieldShouldClearHandle: NSString = "textFieldShouldClearHandle"
        /// The handle for retrieving or storing the `shouldReturnClosure` as an associated value.
        static var textFieldShouldReturnHandle: NSString = "textFieldShouldReturnHandle"
    }
    
    //	MARK: Type Aliases

    //	MARK: UITextField Closure Access
    
    /// The closure to be called to determine whether the text field should begin editing.
    public var shouldBeginEditingClosure: TextFieldResponse? {
        get {
            guard let boxedValue = objc_getAssociatedObject(self, &AssociatedKeys.textFieldShouldBeginEditingHandle) as? Box<TextFieldResponse> else { return nil }
            return boxedValue.value
