             guard let defaultColumnNames = defaultColumnNames else {
                 fatalError("Missing column names")
             }
-            guard defaultColumnNames.count == array.count else {
+            guard defaultColumnNames.count == values.count else {
                 fatalError("Columns count mismatch.")
             }
             var dictionary = [String : SQLiteValueConvertible?]()
-            for (column, value) in zip(defaultColumnNames, array) {
+            for (column, value) in zip(defaultColumnNames, values) {
                 dictionary[column] = value
             }
             return dictionary
         }
         
         var description: String {
-            return "[" + ", ".join(array.map { value in
+            return "[" + ", ".join(values.map { value in
                 if var string = value as? String {
                     string = string.stringByReplacingOccurrencesOfString("\\", withString: "\\\\")
                     string = string.stringByReplacingOccurrencesOfString("\n", withString: "\\n")

    
    // Support for array-based bindings
    private struct BindingsArrayImpl : BindingsImpl {
        let array: [SQLiteValueConvertible?]
        init(array: [SQLiteValueConvertible?]) {
            self.array = array
        }
        func bindInStatement(statement: Statement) {
            for (index, value) in array.enumerate() {
                statement.bind(value, atIndex: index + 1)
            }
        }

    - returns: A Bindings.
    */
    public init<Sequence: SequenceType where Sequence.Generator.Element == Optional<SQLiteValueConvertible>>(_ sequence: Sequence) {
        impl = BindingsArrayImpl(values: Array(sequence))
    }
    
    /**
