public function areReturnTypesWellKnown()
    {
        if (0 == $this->count() || $this->isSatisfiedByTypeSpec(new Specification\IsSpecial())) {
            return false;
        }

        $spec =
            (new Specification\ObjectLike())
            ->either(new Specification\ArrayCompatible())
            ->either(new Specification\IntCompatible())
            ->either(new Specification\StringCompatible())
            ->either(new Specification\IsBool())
            ->either(new Specification\IsDouble())
            ->either(new Specification\IsNull())
            // TODO: Please double check this
            ->either(new Specification\IsVoid());

        $found = $this->getTypesBySpecification($spec);

        return \count($found) == $this->count();
    }