public function combineWith(Type $otherType) : Type
{
if ($otherType instanceof self) {
return new self($this->isNullable() || $otherType->isNullable());
}
if ($otherType instanceof ArrayType && $otherType->isPossiblyCallable()) {
return $this;
}
if ($otherType instanceof NullType) {
return $this->makeNullable();
}
return new MixedType($this->isNullable() || $otherType->isNullable());
}