> As a starting point:
>
> (cl-loop for p in package-alist
>          for name = (car p)
>          unless
>          (cl-loop for pkg in package-alist thereis
>                   (memq name
>                         (mapcar 'car
>                                 (package-desc-reqs (cadr pkg)))))
>          collect name)

Thanks, I'll push it tomorrow, and it'll be quite similar to that.