public function isAssignableFrom(Type $type)
    {
        if ($type->getName() === $this->getName())
            return true;

        if (!($type instanceof ClassType))
            return false;

        return $type->isSubtypeOf($this);
    }