public function filterByDataType($data_type)
    {
        $callback = function (BindingInterface $binding, $key) use ($data_type) {
            switch ($data_type) {
                case PDO::PARAM_BOOL:
                    return $binding->isBoolean();
                case PDO::PARAM_NULL:
                    return $binding->isNull();
                case PDO::PARAM_INT:
                    return $binding->isInteger();
                case PDO::PARAM_STR:
                    return $binding->isString();
                case PDO::PARAM_LOB:
                    return $binding->isLargeObject();
                case PDO::PARAM_STMT:
                    return $binding->isStatement();
                case PDO::PARAM_INPUT_OUTPUT:
                    return $binding->isInputOutput();
            }
        };

        return $this->filter($callback);
    }