 
     /**
      Method for declaring optional field that may be found in a JSON dictionary. If the field is not found during validation,
-     nothing happens.  Allows to provide optional bind and dump closures.
+     nothing happens.
      
      - parameter name: string name of the field
      - parameter rule: rule that should validate the value of the field

        return self
    }
    
    public func optional<R: Rule>(name: String, _ rule: R, dump: (T)->R.V?) -> Self {
        optionalDumpRules.append((name, storeDumpRule(rule, dump)))
        return self

    private var itemRule: R
    private var invalidItemHandler: InvalidItemHandler = { throw $0 }
    
     /**
     Validator initializer
     
     - parameter itemRule: rule for validating array items of type R.V
     - parameter invalidItemHandler: handler closure which is called when the item cannnot be validated.
        Can throw is there is no need to keep checking.
     */
    public init(itemRule: R, invalidItemHandler: InvalidItemHandler? = nil) {
        self.itemRule = itemRule
