protected function preprocessNoneSimpleTypes($data, Model $model)
    {
        if (is_object($data) === true) {
            // Object?
            // Remember that we've been here before.
            $this->pool->recursionHandler->addToHive($data);

            // We need to check if this is an object first.
            // When calling is_a('myClass', 'anotherClass') the autoloader is
            // triggered, trying to load 'myClass', although it is just a string.
            if ($data instanceof \Closure) {
                // Closures are handled differently than normal objects
                return $this->processClosure->process($model);
            }

            // Normal object.
            return $this->processObject->process($model);
        }

        // Must be an array.
        return $this->processArray->process($model);
    }