             opts = {}
             cb = optsOrCallback
 
-        unless not cb? or typeof cb is 'function'
+        unless typeof cb is 'function'
             throw new err.RqlDriverError "Final argument to `reconnect` must be a callback function."
 
         closeCb = (err) =>

    close: (varar 0, 2, (optsOrCallback, callback) ->
        if callback?
            opts = optsOrCallback
            cb = callback
        else
            opts = {}
            cb = optsOrCallback

        unless Object::toString.call(opts) is '[object Object]'
            throw new err.RqlDriverError "First argument to two-argument `close` must be a dictionary."
        for own key of opts
            unless key in ['noreplyWait']
                throw new err.RqlDriverError "First argument to two-argument `close` must be { noreplyWait: <bool> }."
        unless not cb? or typeof cb is 'function'
            throw new err.RqlDriverError "Final argument to `close` must be a callback function."

        wrappedCb = (args...) =>
            @open = false

        if callback?
            opts = optsOrCallback
            cb = callback
        else if Object::toString.call(opts) is '[object Object]'
            opts = optsOrCallback
            cb = null
        else
            opts = {}
            cb = callback
        unless not cb? or typeof cb is 'function'
            throw new err.RqlDriverError "Final argument to `close` must be a callback function or dictionary."

        wrappedCb = (args...) =>
            @rawSocket.end()
