diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 8795caef71..6b0f7d8c9e 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -71,17 +71,17 @@ (define-module (gnu packages audio)
   #:use-module (gnu packages dbm)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages elf)
-  #:use-module (gnu packages emacs)
+  #:autoload (gnu packages emacs) (emacs-minimal)
   #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
-  #:use-module (gnu packages fltk)
+  #:autoload (gnu packages fltk) (fltk ntk)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
-  #:use-module (gnu packages gnunet) ; libmicrohttpd
+  #:autoload (gnu packages gnunet) (libmicrohttpd)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages gstreamer)
@@ -91,23 +91,24 @@ (define-module (gnu packages audio)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libbsd)
   #:use-module (gnu packages libffi)
-  #:use-module (gnu packages libusb)
+  #:autoload (gnu packages libusb) (libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
-  #:use-module (gnu packages machine-learning)
+  #:autoload (gnu packages machine-learning) (python-scikit-learn)
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
-  #:use-module (gnu packages mp3) ;taglib
+  #:autoload (gnu packages mp3)
+  (lame libid3tag libmad mpg123 python-audioread taglib)
   #:use-module (gnu packages multiprecision)
-  #:use-module (gnu packages music)
+  #:autoload (gnu packages music) (portmidi)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages pulseaudio)  ;libsndfile, libsamplerate
+  #:autoload (gnu packages pulseaudio) (libsndfile libsamplerate pulseaudio)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-science)
+  #:autoload (gnu packages python-science) (python-scipy)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdf)
@@ -116,16 +117,14 @@ (define-module (gnu packages audio)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages sqlite)
-  #:use-module (gnu packages telephony)
-  #:use-module (gnu packages linphone)
+  #:autoload (gnu packages linphone) (ortp)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
-  #:use-module (gnu packages video)
-  #:use-module (gnu packages vim) ;xxd
+  #:autoload (gnu packages video) (ffmpeg)
+  #:autoload (gnu packages vim) (xxd)
   #:use-module (gnu packages web)
-  #:use-module (gnu packages webkit)
-  #:use-module (gnu packages wxwidgets)
+  #:autoload (gnu packages wxwidgets) (wxwidgets-3.1)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 5c9d5409cb..983f3f7195 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -46,16 +46,16 @@ (define-module (gnu packages build-tools)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages logging)
-  #:use-module (gnu packages lua)
-  #:use-module (gnu packages package-management)
+  #:autoload (gnu packages logging) (spdlog)
+  #:autoload (gnu packages lua) (lua)
+  #:autoload (gnu packages package-management) (rpm)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages pretty-print)
-  #:use-module (gnu packages protobuf)
+  #:autoload (gnu packages pretty-print) (fmt)
+  #:autoload (gnu packages protobuf) (protobuf)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-build)
-  #:use-module (gnu packages python-crypto)
+  #:autoload (gnu packages python-build) (python-wheel)
+  #:autoload (gnu packages python-crypto) (python-m2crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages regex)
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index d7d649488b..16fc109ff3 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -55,7 +55,7 @@ (define-module (gnu packages c)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages guile)
-  #:use-module (gnu packages lua)
+  #:autoload (gnu packages lua) (lua)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages python)
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 6391bd6fec..5c9729581f 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -59,7 +59,7 @@ (define-module (gnu packages cdrom)
   #:use-module (gnu packages music)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages elf)
-  #:use-module (gnu packages wxwidgets)
+  #:autoload (gnu packages wxwidgets) (wxsvg wxwidgets-3.1)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages readline)
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index f4855e12e9..48018a53af 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -54,13 +54,13 @@ (define-module (gnu packages code)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages elf)
-  #:use-module (gnu packages emacs)
+  #:autoload (gnu packages emacs) (emacs-minimal)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages lua)
+  #:autoload (gnu packages lua) (lua selene)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
@@ -70,7 +70,7 @@ (define-module (gnu packages code)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
-  #:use-module (gnu packages serialization)
+  #:autoload (gnu packages serialization) (libyaml)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index e6d734010d..f8ca0039f3 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -74,19 +74,19 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
-  #:use-module (gnu packages logging)
+  #:autoload (gnu packages logging) (glog)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-check)
+  #:autoload (gnu packages python-check) (python-testfixtures)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages popt)
-  #:use-module (gnu packages pretty-print)
-  #:use-module (gnu packages pulseaudio)
+  #:autoload (gnu packages pretty-print) (fmt)
+  #:autoload (gnu packages pulseaudio) (pulseaudio)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
-  #:use-module (gnu packages xml)
+  #:autoload (gnu packages xml) (expat xerces-c)
   #:use-module (ice-9 match))
 
 (define-public argagg
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index 3de9ddbf22..0d3819c917 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -37,12 +37,12 @@ (define-module (gnu packages cups)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages image)
-  #:use-module (gnu packages libusb)
-  #:use-module (gnu packages pdf)
+  #:autoload (gnu packages libusb) (libusb)
+  #:autoload (gnu packages pdf) (poppler qpdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages polkit)
-  #:use-module (gnu packages pretty-print)
+  #:autoload (gnu packages pretty-print) (a2ps)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index e4dd8365f8..cf35d457fd 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -59,7 +59,7 @@ (define-module (gnu packages dns)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages lua)
+  #:autoload (gnu packages lua) (luajit lua5.1-bitop)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 037a247243..e1c62a44d0 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -71,9 +71,9 @@ (define-module (gnu packages freedesktop)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages cryptsetup)
+  #:autoload (gnu packages cryptsetup) (cryptsetup)
   #:use-module (gnu packages databases)
-  #:use-module (gnu packages disk)
+  #:autoload (gnu packages disk) (libblockdev)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages file)
@@ -81,19 +81,19 @@ (define-module (gnu packages freedesktop)
   #:use-module (gnu packages gawk)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
-  #:use-module (gnu packages gl)
+  #:autoload (gnu packages gl) (mesa)
   #:use-module (gnu packages glib)                ;intltool
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gperf)
-  #:use-module (gnu packages graph)
+  #:autoload (gnu packages graph) (mscgen)
   #:use-module (gnu packages graphviz)
-  #:use-module (gnu packages gstreamer)
+  #:autoload (gnu packages gstreamer)
+  (gstreamer gst-plugins-bad gst-plugins-base gst-plugins-good)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
-  #:use-module (gnu packages language)
+  #:autoload (gnu packages language) (libstemmer)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages libunwind)
-  #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages man)
   #:use-module (gnu packages m4)
@@ -105,17 +105,17 @@ (define-module (gnu packages freedesktop)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-crypto)
+  #:autoload (gnu packages python-crypto) (python-keyutils)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdesktop)
   #:use-module (gnu packages rsync)
   #:use-module (gnu packages samba)
-  #:use-module (gnu packages serialization)
+  #:autoload (gnu packages serialization) (libyaml)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages valgrind)
-  #:use-module (gnu packages video)
-  #:use-module (gnu packages w3m)
+  #:autoload (gnu packages video) (libva)
+  #:autoload (gnu packages w3m) (w3m)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm
index 7d8416c7c5..2b96a35c5c 100644
--- a/gnu/packages/gdb.scm
+++ b/gnu/packages/gdb.scm
@@ -33,7 +33,7 @@ (define-module (gnu packages gdb)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages guile)
-  #:use-module (gnu packages pretty-print)
+  #:autoload (gnu packages pretty-print) (source-highlight)
   #:use-module (gnu packages python)
   #:use-module (gnu packages pkg-config)
   #:use-module (guix download)
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index c740c087dd..89627fd268 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -48,13 +48,13 @@ (define-module (gnu packages gl)
   #:use-module (gnu packages image)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
-  #:use-module (gnu packages mono)
+  #:autoload (gnu packages mono) (mono)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages tls)
-  #:use-module (gnu packages video)
-  #:use-module (gnu packages vulkan)
+  #:autoload (gnu packages video) (libva libvdpau)
+  #:autoload (gnu packages vulkan) (glslang)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 820a44cbde..c904ee7def 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -45,7 +45,7 @@ (define-module (gnu packages glib)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages elf)
-  #:use-module (gnu packages enlightenment)
+  #:autoload (gnu packages enlightenment) (efl)
   #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gettext)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 251d08ae01..3a95a3fcf1 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -90,10 +90,11 @@
 
 (define-module (gnu packages gnome)
   #:use-module (gnu packages)
-  #:use-module (gnu packages admin)
-  #:use-module (gnu packages aidc)
-  #:use-module (gnu packages aspell)
-  #:use-module (gnu packages autotools)
+  #:autoload (gnu packages admin) (audit isc-dhcp)
+  #:autoload (gnu packages aidc) (zbar)
+  #:autoload (gnu packages aspell) (aspell-dict-en)
+  #:autoload (gnu packages autotools)
+  (autoconf autoconf-archive automake config libtool)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
@@ -101,120 +102,136 @@ (define-module (gnu packages gnome)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages build-tools)
-  #:use-module (gnu packages calendar)
-  #:use-module (gnu packages cdrom)
+  #:autoload (gnu packages calendar) (libical)
+  #:autoload (gnu packages cdrom) (dvd+rw-tools libcdio-paranoia libcue)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages crates-io)
-  #:use-module (gnu packages crates-graphics)
-  #:use-module (gnu packages crates-gtk)
+  #:autoload (gnu packages crates-io)
+  (rust-bitflags-1
+   rust-assert-cmd-1 rust-cast-0.2 rust-chrono-0.4 rust-criterion-0.3
+   rust-cssparser-0.27 rust-data-url-0.1 rust-encoding-0.2 rust-float-cmp-0.8
+   rust-itertools-0.9 rust-language-tags-0.2 rust-libc-0.2
+   rust-locale-config-0.3 rust-lopdf-0.26 rust-markup5ever-0.10
+   rust-nalgebra-0.21 rust-num-traits-0.2 rust-once-cell-1 rust-pkg-config-0.3
+   rust-predicates-1 rust-rayon-1 rust-rctree-0.3 rust-regex-1
+   rust-selectors-0.22 rust-string-cache-0.8 rust-tempfile-3 rust-tinyvec-0.3
+   rust-url-2 rust-xml5ever-0.16)
+  #:autoload (gnu packages crates-graphics) (rust-png-0.16 rust-rgb-0.8)
+  #:autoload (gnu packages crates-gtk)
+  (rust-cairo-rs-0.8
+   rust-cairo-sys-rs-0.9 rust-gdk-pixbuf-0.8 rust-gdk-pixbuf-sys-0.9
+   rust-gio-0.8 rust-gio-sys-0.9 rust-glib-0.9 rust-glib-sys-0.9
+   rust-gobject-sys-0.9 rust-pango-0.8 rust-pango-sys-0.9 rust-pangocairo-0.9)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dbm)
-  #:use-module (gnu packages djvu)
+  #:autoload (gnu packages djvu) (djvulibre)
   #:use-module (gnu packages dns)
   #:use-module (gnu packages docbook)
-  #:use-module (gnu packages docker)
+  #:autoload (gnu packages docker) (tini)
   #:use-module (gnu packages documentation)
-  #:use-module (gnu packages enchant)
+  #:autoload (gnu packages enchant) (enchant python-pyenchant)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fonts)
-  #:use-module (gnu packages file-systems)
+  #:autoload (gnu packages file-systems) (libnfs)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
-  #:use-module (gnu packages game-development)
+  #:autoload (gnu packages game-development) (qqwing)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
-  #:use-module (gnu packages gimp)
-  #:use-module (gnu packages gl)
+  #:autoload (gnu packages gimp) (babl gegl)
+  #:autoload (gnu packages gl) (libepoxy mesa mesa-headers glu)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages gnuzilla)
-  #:use-module (gnu packages geo)
+  #:autoload (gnu packages gnuzilla) (mozjs)
+  #:autoload (gnu packages geo) (gnome-maps)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages graphviz)
-  #:use-module (gnu packages gstreamer)
+  #:autoload (gnu packages gstreamer)
+  (gstreamer gst-editing-services gst-plugins-bad gst-plugins-base
+             gst-plugins-good gst-plugins-good gst-plugins-ugly python-gst)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
-  #:use-module (gnu packages haskell-xyz)
+  #:autoload (gnu packages haskell-xyz) (pandoc)
   #:use-module (gnu packages ibus)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
-  #:use-module (gnu packages inkscape)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages kerberos)
-  #:use-module (gnu packages language)
+  #:autoload (gnu packages language) (libstemmer)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages libunistring)
   #:use-module (gnu packages libunwind)
-  #:use-module (gnu packages libusb)
+  #:autoload (gnu packages libusb) (libimobiledevice libmtp libusb)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages lirc)
+  #:autoload (gnu packages lirc) (lirc)
   #:use-module (gnu packages llvm)
-  #:use-module (gnu packages lua)
-  #:use-module (gnu packages mail)
+  #:autoload (gnu packages lua) (lua-5.2)
+  #:autoload (gnu packages mail) (gmime ytnef)
   #:use-module (gnu packages man)
   #:use-module (gnu packages markup)
-  #:use-module (gnu packages messaging)
-  #:use-module (gnu packages mp3)
+  #:autoload (gnu packages messaging) (libphonenumber)
+  #:autoload (gnu packages mp3) (taglib)
   #:use-module (gnu packages multiprecision)
-  #:use-module (gnu packages music)
+  #:autoload (gnu packages music)
+  (libdiscid libmusicbrainz python-pylast)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ninja)
-  #:use-module (gnu packages node)
+  #:autoload (gnu packages node) (node)
   #:use-module (gnu packages nss)
-  #:use-module (gnu packages ocr)
-  #:use-module (gnu packages openldap)
-  #:use-module (gnu packages package-management)
-  #:use-module (gnu packages password-utils)
+  #:autoload (gnu packages ocr) (ocrad tesseract-ocr)
+  #:autoload (gnu packages openldap) (openldap)
+  #:autoload (gnu packages package-management) (guix-icons)
+  #:autoload (gnu packages password-utils) (libpwquality)
   #:use-module (gnu packages pcre)
-  #:use-module (gnu packages pdf)
+  #:autoload (gnu packages pdf) (poppler python-reportlab)
   #:use-module (gnu packages perl)
-  #:use-module (gnu packages photo)
+  #:autoload (gnu packages photo) (libexif libgphoto2 libraw)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages popt)
-  #:use-module (gnu packages pretty-print)
-  #:use-module (gnu packages protobuf)
+  #:autoload (gnu packages pretty-print) (highlight)
+  #:autoload (gnu packages protobuf) (protobuf python-pure-protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-crypto)
+  #:autoload (gnu packages python-crypto)
+  (python-keyring python-pycrypto python-pykeepass python-pyotp)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages rdesktop)
+  #:autoload (gnu packages rdesktop) (freerdp)
   #:use-module (gnu packages rdf)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages ruby)
-  #:use-module (gnu packages rust)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages scanner)
-  #:use-module (gnu packages sdl)
-  #:use-module (gnu packages search)
+  #:autoload (gnu packages search) (xapian)
   #:use-module (gnu packages selinux)
   #:use-module (gnu packages slang)
-  #:use-module (gnu packages speech)
-  #:use-module (gnu packages spice)
+  #:autoload (gnu packages speech)
+  (pocketsphinx speech-dispatcher sphinxbase)
+  #:autoload (gnu packages spice) (spice spice-gtk)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
-  #:use-module (gnu packages valgrind)
+  #:autoload (gnu packages valgrind) (valgrind)
   #:use-module (gnu packages version-control)
-  #:use-module (gnu packages video)
-  #:use-module (gnu packages virtualization)
-  #:use-module (gnu packages vpn)
+  #:autoload (gnu packages video) (libbluray libdvdread ffmpeg)
+  #:autoload (gnu packages virtualization)
+  (bubblewrap libosinfo libvirt libvirt-glib)
+  #:autoload (gnu packages vpn) (openconnect openvpn vpnc)
   #:use-module (gnu packages web)
-  #:use-module (gnu packages webkit)
+  #:autoload (gnu packages webkit) (webkitgtk webkitgtk-with-libsoup2)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 9a378e76a6..bef3d23771 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -58,7 +58,7 @@ (define-module (gnu packages graphics)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages build-tools)
-  #:use-module (gnu packages cdrom)
+  #:autoload (gnu packages cdrom) (libcddb)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
@@ -73,52 +73,52 @@ (define-module (gnu packages graphics)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
-  #:use-module (gnu packages gnunet)
+  #:autoload (gnu packages gnunet) (libmicrohttpd)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
-  #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages image)
   #:use-module (gnu packages image-processing)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages jemalloc)
-  #:use-module (gnu packages kde-frameworks)
-  #:use-module (gnu packages libusb)
+  #:autoload (gnu packages kde-frameworks)
+  (extra-cmake-modules karchive kdnssd)
+  #:autoload (gnu packages libusb) (libusb)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages logging)
+  #:autoload (gnu packages logging) (spdlog)
   #:use-module (gnu packages llvm)
-  #:use-module (gnu packages lua)
+  #:autoload (gnu packages lua) (luajit)
   #:use-module (gnu packages maths)
-  #:use-module (gnu packages mp3)
+  #:autoload (gnu packages mp3) (libmad)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ninja)
   #:use-module (gnu packages pciutils)
-  #:use-module (gnu packages pdf)
+  #:autoload (gnu packages pdf) (fbida)
   #:use-module (gnu packages perl)
-  #:use-module (gnu packages photo)
+  #:autoload (gnu packages photo) (perl-image-exiftool)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages plotutils)
-  #:use-module (gnu packages pretty-print)
+  #:autoload (gnu packages plotutils) (plotutils)
+  #:autoload (gnu packages pretty-print) (fmt)
   #:use-module (gnu packages pth)
   #:use-module (gnu packages pulseaudio)  ; libsndfile, libsamplerate
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages qt)
+  #:autoload (gnu packages qt)
+  (qtbase-5 qtsvg-5 qtkeychain qtmultimedia-5 qttools-5 qtx11extras)
   #:use-module (gnu packages readline)
-  #:use-module (gnu packages sdl)
+  #:autoload (gnu packages sdl) (sdl sdl2)
   #:use-module (gnu packages serialization)
-  #:use-module (gnu packages stb)
   #:use-module (gnu packages swig)
-  #:use-module (gnu packages tbb)
-  #:use-module (gnu packages toolkits)
-  #:use-module (gnu packages upnp)
+  #:autoload (gnu packages tbb) (tbb)
+  #:autoload (gnu packages toolkits) (imgui-1.86)
   #:use-module (gnu packages video)
-  #:use-module (gnu packages vulkan)
-  #:use-module (gnu packages xiph)
-  #:use-module (gnu packages xml)
+  #:autoload (gnu packages vulkan)
+  (glslang vulkan-headers vulkan-loader shaderc)
+  #:autoload (gnu packages xiph) (libvorbis)
+  #:autoload (gnu packages xml) (expat pugixml)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages xdisorg)
+  #:autoload (gnu packages xdisorg) (libdrm pixman)
   #:use-module (guix build-system copy)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index a1503602ad..623afca302 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -37,13 +37,13 @@ (define-module (gnu packages gstreamer)
   #:use-module (guix build-system trivial)
   #:use-module (guix utils)
   #:use-module (gnu packages)
-  #:use-module (gnu packages aidc)
+  #:autoload (gnu packages aidc) (zbar zxing-cpp-1.2)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
-  #:use-module (gnu packages cdrom)
+  #:autoload (gnu packages cdrom) (cdparanoia libcdio)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
@@ -60,22 +60,21 @@ (define-module (gnu packages gstreamer)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
-  #:use-module (gnu packages image-processing)
+  ;#:use-module (gnu packages image-processing)
   #:use-module (gnu packages iso-codes)
-  #:use-module (gnu packages java)
+  #:autoload (gnu packages java) (openjdk14)
   #:use-module (gnu packages libunwind)
-  #:use-module (gnu packages libusb)
+  #:autoload (gnu packages libusb) (libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages maths)
-  #:use-module (gnu packages mp3)
+  #:autoload (gnu packages mp3) (chromaprint lame libmpcdec mpg123 taglib)
   #:use-module (gnu packages multiprecision)
-  #:use-module (gnu packages music)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
-  #:use-module (gnu packages ocr)
+  #:autoload (gnu packages ocr) (tesseract-ocr)
   #:use-module (gnu packages perl)
-  #:use-module (gnu packages photo)
+  #:autoload (gnu packages photo) (libexif)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdf)
@@ -87,14 +86,14 @@ (define-module (gnu packages gstreamer)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages ruby)
-  #:use-module (gnu packages speech)
+  #:autoload (gnu packages speech) (flite)
   #:use-module (gnu packages python)
   #:use-module (gnu packages ssh)
-  #:use-module (gnu packages telephony)
+  #:autoload (gnu packages telephony) (libsrtp spandsp)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
-  #:use-module (gnu packages vulkan)
-  #:use-module (gnu packages webkit)
+  #:autoload (gnu packages vulkan) (vulkan-headers vulkan-loader)
+  #:autoload (gnu packages webkit) (wpebackend-fdo)
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages xml))
 
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 5e6e6892aa..b99d118b64 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -74,13 +74,13 @@ (define-module (gnu packages gtk)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
-  #:use-module (gnu packages enchant)
+  #:autoload (gnu packages enchant) (enchant)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages fribidi)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
-  #:use-module (gnu packages gl)
+  #:autoload (gnu packages gl) (libepoxy mesa)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages graphviz)
@@ -95,17 +95,18 @@ (define-module (gnu packages gtk)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages pretty-print)
+  #:autoload (gnu packages pretty-print) (source-highlight)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages gstreamer)
+  #:autoload (gnu packages gstreamer)
+  (gstreamer gst-plugins-bad gst-plugins-base)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages version-control)
-  #:use-module (gnu packages video)
-  #:use-module (gnu packages vulkan)
+  #:autoload (gnu packages video) (ffmpeg)
+  #:autoload (gnu packages vulkan) (vulkan-headers vulkan-loader)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index 3dfe086af8..c41c7c1b86 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -58,9 +58,9 @@ (define-module (gnu packages image-processing)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
-  #:use-module (gnu packages geo)
+  #:autoload (gnu packages geo) (proj libgeotiff)
   #:use-module (gnu packages ghostscript)
-  #:use-module (gnu packages gimp)
+  #:autoload (gnu packages gimp) (gegl gimp)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -75,7 +75,7 @@ (define-module (gnu packages image-processing)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
-  #:use-module (gnu packages photo)
+  #:autoload (gnu packages photo) (libexif libgphoto2)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index e679a73f9d..1b1fba03f4 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -69,20 +69,20 @@ (define-module (gnu packages image)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
-  #:use-module (gnu packages gimp)
-  #:use-module (gnu packages gl)
+  #:autoload (gnu packages gimp) (libmypaint mypaint-brushes)
+  #:autoload (gnu packages gl) (freeglut)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages gtk)
-  #:use-module (gnu packages lua)
+  ;#:use-module (gnu packages lua) (lua-5.2)
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mcrypt)
-  #:use-module (gnu packages mp3)
+  #:autoload (gnu packages mp3) (libid3tag)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
-  #:use-module (gnu packages photo)
+  #:autoload (gnu packages photo) (libraw perl-image-exiftool)
   #:use-module (gnu packages popt)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -92,7 +92,7 @@ (define-module (gnu packages image)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages textutils)
-  #:use-module (gnu packages video)
+  #:autoload (gnu packages video) (dav1d libaom libde265 rav1e x265)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
index 2e43835e4f..87c4850bf7 100644
--- a/gnu/packages/inkscape.scm
+++ b/gnu/packages/inkscape.scm
@@ -40,7 +40,8 @@ (define-module (gnu packages inkscape)
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages imagemagick)
-  #:use-module (gnu packages libreoffice)
+  #:autoload (gnu packages libreoffice)
+  (libcdr libvisio libwpd libwpg)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pdf)
diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm
index 8a5967f7b4..1d4b4305fd 100644
--- a/gnu/packages/libusb.scm
+++ b/gnu/packages/libusb.scm
@@ -43,9 +43,10 @@ (define-module (gnu packages libusb)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
-  #:use-module (gnu packages java)
+  #:autoload (gnu packages java)
+  (icedtea java-commons-lang3 java-hamcrest-core java-junit)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages mp3)
+  #:autoload (gnu packages mp3) (libid3tag)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 2d3ee79339..80f2980003 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -60,13 +60,14 @@ (define-module (gnu packages llvm)
   #:use-module (gnu packages bootstrap)           ;glibc-dynamic-linker
   #:use-module (gnu packages check)               ;python-lit
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages julia)               ;julia-patch
+  #:autoload (gnu packages julia) (julia-patch)
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages libffi)
-  #:use-module (gnu packages lua)
+  #:autoload (gnu packages lua) (lua)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages ncurses)
-  #:use-module (gnu packages ocaml)
+  #:autoload (gnu packages ocaml)
+  (ocaml ocaml-ctypes ocaml-findlib ocaml-integers ocaml-ounit)
   #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm
index 099b6a9509..615cde2ce3 100644
--- a/gnu/packages/logging.scm
+++ b/gnu/packages/logging.scm
@@ -42,7 +42,7 @@ (define-module (gnu packages logging)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages flex)
-  #:use-module (gnu packages geo)
+  #:autoload (gnu packages geo) (libmaxminddb)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages linux)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 72d5e9a83a..4e9ceed460 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -92,7 +92,7 @@ (define-module (gnu packages maths)
   #:use-module (guix build-system python)
   #:use-module (guix build-system ruby)
   #:use-module (gnu packages algebra)
-  #:use-module (gnu packages audio)
+  #:autoload (gnu packages audio) (portaudio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
@@ -101,17 +101,17 @@ (define-module (gnu packages maths)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages coq)
+  #:autoload (gnu packages coq) (coq coq-flocq)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
-  #:use-module (gnu packages datamash)
+  #:autoload (gnu packages datamash) (vnlog)
   #:use-module (gnu packages dbm)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages elf)
-  #:use-module (gnu packages emacs)
+  #:autoload (gnu packages emacs) (emacs-minimal)
   #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
-  #:use-module (gnu packages fltk)
+  #:autoload (gnu packages fltk) (fltk)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gcc)
@@ -122,26 +122,29 @@ (define-module (gnu packages maths)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
-  #:use-module (gnu packages java)
+  #:autoload (gnu packages java)
+  (icedtea java-hamcrest-core java-junit java-slf4j-api java-slf4j-simple)
   #:use-module (gnu packages less)
-  #:use-module (gnu packages lisp)
+  #:autoload (gnu packages lisp) (sbcl)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
-  #:use-module (gnu packages logging)
-  #:use-module (gnu packages lua)
+  #:autoload (gnu packages logging) (glog)
+  #:autoload (gnu packages lua) (lua)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages gl)
+  #:autoload (gnu packages gl) (glu gl2ps mesa)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages netpbm)
-  #:use-module (gnu packages ocaml)
+  #:autoload (gnu packages ocaml)
+  (camlzip lablgtk3 ocaml ocaml-biniou ocaml-easy-format ocaml-findlib
+           ocaml-graph ocaml-menhir ocaml-num ocaml-yojson ocaml-zarith)
   #:use-module (gnu packages onc-rpc)
-  #:use-module (gnu packages parallel)
+  #:autoload (gnu packages parallel) (psimd)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages popt)
   #:use-module (gnu packages perl)
@@ -154,7 +157,7 @@ (define-module (gnu packages maths)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages tbb)
-  #:use-module (gnu packages scheme)
+  #:autoload (gnu packages scheme) (scm)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages shells)
   #:use-module (gnu packages sphinx)
@@ -164,7 +167,7 @@ (define-module (gnu packages maths)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
-  #:use-module (gnu packages wxwidgets)
+  #:autoload (gnu packages wxwidgets) (wxwidgets)
   #:use-module (gnu packages xml)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index ebf9238906..0bc71b1cc7 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -35,9 +35,9 @@ (define-module (gnu packages mpi)
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages fabric-management)
+  #:autoload (gnu packages fabric-management) (opensm ucx)
   #:use-module (gnu packages gcc)
-  #:use-module (gnu packages java)
+  #:autoload (gnu packages java) (openjdk11)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pciutils)
@@ -46,7 +46,7 @@ (define-module (gnu packages mpi)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages ncurses)
-  #:use-module (gnu packages parallel)
+  #:autoload (gnu packages parallel) (slurm)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages valgrind)
   #:use-module (srfi srfi-1)
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index e1de632dda..2c1e8dbfa4 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -96,7 +96,7 @@ (define-module (gnu packages music)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base) ;libbdf
   #:use-module (gnu packages bash)
-  #:use-module (gnu packages benchmark)
+  #:autoload (gnu packages benchmark) (benchmark)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages build-tools)
@@ -112,40 +112,39 @@ (define-module (gnu packages music)
   #:use-module (gnu packages datastructures)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
-  #:use-module (gnu packages emacs)
+  #:autoload (gnu packages emacs) (emacs-no-x)
   #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fltk)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
-  #:use-module (gnu packages game-development)
-  #:use-module (gnu packages gnupg)
+  #:autoload (gnu packages game-development) (allegro-4)
+  #:autoload (gnu packages gnupg) (libgcrypt)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
-  #:use-module (gnu packages gnunet)
-  #:use-module (gnu packages gpodder)
+  #:autoload (gnu packages gnunet) (libmicrohttpd)
+  #:autoload (gnu packages gpodder) (libmygpo-qt)
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
-  #:use-module (gnu packages haskell)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
-  #:use-module (gnu packages java)
+  #:autoload (gnu packages java) (icedtea-8 java-swt)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages libevent)
-  #:use-module (gnu packages libusb)
+  #:autoload (gnu packages libusb) (hidapi libmtp libusb)
   #:use-module (gnu packages linux) ; for alsa-utils
-  #:use-module (gnu packages lirc)
+  #:autoload (gnu packages lirc) (lirc)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages man)
   #:use-module (gnu packages mp3)
-  #:use-module (gnu packages mpd)
+  #:autoload (gnu packages mpd) (python-mpd2)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages netpbm)
   #:use-module (gnu packages pcre)
@@ -178,17 +177,23 @@ (define-module (gnu packages music)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages video)
-  #:use-module (gnu packages vim)       ;for 'xxd'
+  #:autoload (gnu packages vim) (xxd)
   #:use-module (gnu packages web)
-  #:use-module (gnu packages webkit)
-  #:use-module (gnu packages wm)
-  #:use-module (gnu packages wxwidgets)
+  #:autoload (gnu packages webkit) (webkitgtk)
+  #:autoload (gnu packages wm) (keybinder-3.0)
+  #:autoload (gnu packages wxwidgets) (wxwidgets wxwidgets-gtk2)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xiph)
-  #:use-module (gnu packages golang)
-  #:use-module (gnu packages lua)
+  #:autoload (gnu packages golang)
+  (go-github-com-aarzilli-golua
+   go-github-com-mattn-go-colorable go-github-com-mattn-go-isatty
+   go-github-com-mgutz-ansi go-github-com-michiwend-gomusicbrainz
+   go-github-com-stevedonovan-luar go-github-com-wtolson-go-taglib
+   go-github-com-yookoala-realpath go-gitlab-com-ambrevar-damerau
+   go-gitlab-com-ambrevar-golua-unicode)
+  #:autoload (gnu packages lua) (lua)
   #:use-module ((srfi srfi-1) #:select (last)))
 
 (define-public audacious
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 2fea1b2b59..974ef4e883 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -110,33 +110,41 @@ (define-module (gnu packages networking)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages golang)
+  #:autoload (gnu packages golang)
+  (go-github-com-arceliar-ironwood
+   go-github-com-arceliar-phony go-github-com-cheggaaa-pb-v3
+   go-github-com-fatih-color go-github-com-gologme-log
+   go-github-com-hashicorp-go-syslog go-github-com-hjson-hjson-go
+   go-github-com-kardianos-minwinsvc go-github-com-mattn-go-isatty
+   go-github-com-mattn-go-runewidth go-github-com-mitchellh-mapstructure
+   go-github-com-vividcortex-ewma go-golang-org-x-crypto go-golang-org-x-net
+   go-golang-org-x-sys go-golang-org-x-text go-golang-zx2c4-com-wireguard)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libidn)
-  #:use-module (gnu packages libusb)
+  #:autoload (gnu packages libusb) (libusb)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages lua)
+  #:autoload (gnu packages lua) (lua lua-5.2)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nettle)
-  #:use-module (gnu packages openldap)
+  #:autoload (gnu packages openldap) (openldap)
   #:use-module (gnu packages onc-rpc)
-  #:use-module (gnu packages password-utils)
+  #:autoload (gnu packages password-utils) (argon2)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages polkit)
-  #:use-module (gnu packages pretty-print)
+  #:autoload (gnu packages pretty-print) (fmt)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-crypto)
+  #:autoload (gnu packages python-crypto) (python-pycryptodome)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
@@ -153,7 +161,7 @@ (define-module (gnu packages networking)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
   #:use-module (gnu packages web)
-  #:use-module (gnu packages wxwidgets)
+  #:autoload (gnu packages wxwidgets) (wxwidgets-gtk2)
   #:use-module (gnu packages xml)
   #:use-module (ice-9 match))
 
diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm
index c8a47e45d5..1cbf138e4c 100644
--- a/gnu/packages/openldap.scm
+++ b/gnu/packages/openldap.scm
@@ -41,7 +41,7 @@ (define-module (gnu packages openldap)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages nss)
-  #:use-module (gnu packages password-utils)
+  #:autoload (gnu packages password-utils) (cracklib)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 0069fdd74c..cbeaa457ee 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -63,7 +63,7 @@ (define-module (gnu packages password-utils)
   #:use-module (guix packages)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
-  #:use-module (gnu packages aidc)
+  #:autoload (gnu packages aidc) (qrencode)
   #:use-module (gnu packages authentication)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 39266a2822..acca5ac096 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -52,7 +52,7 @@ (define-module (gnu packages pdf)
   #:use-module (guix build-system qt)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
-  #:use-module (gnu packages audio)
+  #:autoload (gnu packages audio) (portaudio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
@@ -62,38 +62,38 @@ (define-module (gnu packages pdf)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
-  #:use-module (gnu packages djvu)
+  #:autoload (gnu packages djvu) (djvulibre)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
-  #:use-module (gnu packages game-development)
+  #:autoload (gnu packages game-development) (python-pygame)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
-  #:use-module (gnu packages gl)
+  #:autoload (gnu packages gl) (freeglut mesa libepoxy)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages gstreamer)
+  #:autoload (gnu packages gstreamer) (gstreamer gst-plugins-base)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
-  #:use-module (gnu packages javascript)
+  #:autoload (gnu packages javascript) (mujs)
   #:use-module (gnu packages lesstif)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages lua)
+  #:autoload (gnu packages lua) (lua lua-5.1)
   #:use-module (gnu packages man)
-  #:use-module (gnu packages markup)
+  #:autoload (gnu packages markup) (discount)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
-  #:use-module (gnu packages photo)
+  #:autoload (gnu packages photo) (libexif)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages pulseaudio)
+  #:autoload (gnu packages pulseaudio) (libsndfile)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
-  #:use-module (gnu packages sdl)
+  #:autoload (gnu packages sdl) (sdl)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tex)
@@ -101,7 +101,7 @@ (define-module (gnu packages pdf)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
-  #:use-module (gnu packages webkit)
+  #:autoload (gnu packages webkit) (webkitgtk-with-libsoup2)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 19c171a9bb..eec96127bc 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -51,7 +51,7 @@ (define-module (gnu packages photo)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages file)
   #:use-module (gnu packages freedesktop)
-  #:use-module (gnu packages geo)
+  #:autoload (gnu packages geo) (osm-gps-map)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
@@ -65,9 +65,9 @@ (define-module (gnu packages photo)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages libcanberra)
-  #:use-module (gnu packages libusb)
+  #:autoload (gnu packages libusb) (libusb)
   #:use-module (gnu packages llvm)
-  #:use-module (gnu packages lua)
+  #:autoload (gnu packages lua) (lua-5.4)
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages opencl)
@@ -85,7 +85,7 @@ (define-module (gnu packages photo)
   #:use-module (gnu packages time)
   #:use-module (gnu packages video)
   #:use-module (gnu packages web)
-  #:use-module (gnu packages wxwidgets)
+  #:autoload (gnu packages wxwidgets) (wxwidgets)
   #:use-module (gnu packages xfig)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xml)
diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index a75608cd43..d8907862d1 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -40,8 +40,8 @@ (define-module (gnu packages polkit)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages docbook)
-  #:use-module (gnu packages gnuzilla)
-  #:use-module (gnu packages javascript)
+  #:autoload (gnu packages gnuzilla) (mozjs)
+  #:autoload (gnu packages javascript) (duktape)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages perl)
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 7cc266fbce..15965fcc0a 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -37,14 +37,12 @@ (define-module (gnu packages python-check)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages check)
-  #:use-module (gnu packages docker)
-  #:use-module (gnu packages django)
-  #:use-module (gnu packages openstack)
+  #:autoload (gnu packages openstack) (python-cliff)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages qt)
+  #:autoload (gnu packages qt) (python-pyqt-without-qtwebkit)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index 0504dd0b2a..d1c1345835 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -40,7 +40,7 @@ (define-module (gnu packages python-compression)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-check)
-  #:use-module (gnu packages python-crypto)
+  #:autoload (gnu packages python-crypto) (python-pycryptodome)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages sphinx))
 
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index d060d5b27c..c8eefe59ec 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -85,28 +85,33 @@ (define-module (gnu packages python-web)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
-  #:use-module (gnu packages django)
+  #:autoload (gnu packages django) (python-django)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libffi)
-  #:use-module (gnu packages node)
-  #:use-module (gnu packages openstack)
+  #:autoload (gnu packages node) (node)
+  #:autoload (gnu packages openstack) (python-bandit)
   #:use-module (gnu packages pcre)
-  #:use-module (gnu packages protobuf)
+  #:autoload (gnu packages protobuf) (python-proto-plus python-protobuf)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-check)
-  #:use-module (gnu packages python-crypto)
-  #:use-module (gnu packages python-science)
+  #:autoload (gnu packages python-crypto)
+  (python-certauth
+   python-certifi python-cryptography python-ecdsa python-keyring
+   python-ntlm-auth python-paramiko python-passlib python-pycrypto
+   python-pyopenssl python-pyu2f python-service-identity python-starkbank-ecdsa
+   python-trustme)
+  #:autoload (gnu packages python-science) (python-pandas)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdf)
   #:use-module (gnu packages rpc)
-  #:use-module (gnu packages serialization)
+  #:autoload (gnu packages serialization) (python-ruamel.yaml)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 53166980e8..d442d0a246 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -64,7 +64,7 @@ (define-module (gnu packages qt)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages documentation)
-  #:use-module (gnu packages enchant)
+  #:autoload (gnu packages enchant) (enchant)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freedesktop)
@@ -80,15 +80,15 @@ (define-module (gnu packages qt)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
-  #:use-module (gnu packages kde-frameworks)
+  #:autoload (gnu packages kde-frameworks) (extra-cmake-modules)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages maths)
-  #:use-module (gnu packages markup)
+  #:autoload (gnu packages markup) (md4c)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ninja)
-  #:use-module (gnu packages node)
+  #:autoload (gnu packages node) (node-lts)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages pciutils)
   #:use-module (gnu packages pcre)
@@ -102,14 +102,13 @@ (define-module (gnu packages qt)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages regex)
   #:use-module (gnu packages ruby)
-  #:use-module (gnu packages sdl)
+  #:autoload (gnu packages sdl) (sdl2)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages sqlite)
-  #:use-module (gnu packages telephony)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
-  #:use-module (gnu packages video)
-  #:use-module (gnu packages vulkan)
+  #:autoload (gnu packages video) (ffmpeg libvpx openh264)
+  #:autoload (gnu packages vulkan) (glslang vulkan-headers)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xorg)
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index 360c06d216..de8b8a4f29 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -54,12 +54,12 @@ (define-module (gnu packages samba)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages onc-rpc)
-  #:use-module (gnu packages openldap)
+  #:autoload (gnu packages openldap) (openldap)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages popt)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-crypto)
+  #:autoload (gnu packages python-crypto) (python-cryptography)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages time)
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index 4c38e2f055..1d48a9e2a0 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -44,7 +44,7 @@ (define-module (gnu packages sdl)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages fcitx)
+  #:autoload (gnu packages fcitx) (fcitx)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
@@ -53,8 +53,8 @@ (define-module (gnu packages sdl)
   #:use-module (gnu packages ibus)
   #:use-module (gnu packages image)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages mono)
-  #:use-module (gnu packages mp3)
+  #:autoload (gnu packages mono) (mono)
+  #:autoload (gnu packages mp3) (libmad)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages gl)
diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index 84c4af68a3..6551c5fe11 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -45,7 +45,7 @@ (define-module (gnu packages search)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages check)
   #:use-module (gnu packages databases)
-  #:use-module (gnu packages ebook)
+  #:autoload (gnu packages ebook) (chmlib)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gawk)
   #:use-module (gnu packages gettext)
@@ -60,7 +60,7 @@ (define-module (gnu packages search)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-crypto)
+  #:autoload (gnu packages python-crypto) (python-certifi)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 79c55e2b2f..4c2a82e62b 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -53,10 +53,10 @@ (define-module (gnu packages serialization)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages llvm)
-  #:use-module (gnu packages lua)
+  #:autoload (gnu packages lua) (lua lua-5.1 lua-5.2)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-science)
+  #:autoload (gnu packages python-science) (python-pandas)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages perl))
 
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 4d0dd92007..b789cdb462 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -43,8 +43,37 @@ (define-module (gnu packages shells)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages crates-graphics)
-  #:use-module (gnu packages crates-io)
+  #:autoload (gnu packages crates-graphics) (rust-ical-0.7 rust-image-0.23)
+  #:autoload (gnu packages crates-io)
+  (rust-atty-0.2
+   rust-base64-0.13 rust-bat-0.18 rust-bigdecimal-0.3 rust-bson-2
+   rust-byte-unit-4 rust-bytes-1 rust-calamine-0.18 rust-chrono-0.4
+   rust-chrono-humanize-0.2 rust-chrono-tz-0.5 rust-codespan-reporting-0.11
+   rust-common-path-1 rust-crossterm-0.19 rust-csv-1 rust-ctrlc-3
+   rust-derive-new-0.5 rust-digest-0.9 rust-directories-next-2 rust-dirs-next-2
+   rust-doc-comment-0.3 rust-dtparse-1 rust-dunce-1 rust-eml-parser-0.1
+   rust-encoding-rs-0.8 rust-filesize-0.2 rust-fs-extra-1 rust-futures-0.3
+   rust-getset-0.1 rust-gjson-0.8 rust-glob-0.3 rust-hamcrest2-0.3
+   rust-heapless-0.7 rust-heck-0.4 rust-hex-0.4 rust-htmlescape-0.3
+   rust-indexmap-1 rust-insta-1 rust-is-executable-1 rust-itertools-0.10
+   rust-lazy-static-1 rust-linked-hash-map-0.5 rust-log-0.4 rust-md-5-0.9
+   rust-meval-0.2 rust-mime-0.3 rust-mp4-0.9 rust-neso-0.5 rust-num-bigint-0.4
+   rust-num-format-0.4 rust-num-integer-0.1 rust-num-traits-0.2 rust-open-1
+   rust-overload-0.1 rust-parking-lot-0.11 rust-polars-0.17 rust-pretty-0.5
+   rust-pretty-env-logger-0.4 rust-ptree-0.4 rust-quick-xml-0.22
+   rust-quickcheck-macros-1 rust-rand-0.8 rust-rawkey-0.1 rust-rayon-1
+   rust-regex-1 rust-reqwest-0.11 rust-roxmltree-0.14 rust-rstest-0.10
+   rust-rusqlite-0.26 rust-rust-embed-5 rust-rustyline-9 rust-s3handler-0.7
+   rust-scraper-0.12 rust-semver-0.11 rust-serde-1 rust-serde-bytes-0.11
+   rust-serde-ini-0.2 rust-serde-json-1 rust-serde-urlencoded-0.7
+   rust-serde-yaml-0.8 rust-serial-test-0.5 rust-sha2-0.9 rust-shadow-rs-0.8
+   rust-smart-default-0.6 rust-strip-ansi-escapes-0.1 rust-sxd-document-0.3
+   rust-sxd-xpath-0.4 rust-sys-locale-0.1 rust-sysinfo-0.23 rust-tempfile-3
+   rust-term-0.7 rust-term-size-0.3 rust-termcolor-1 rust-thiserror-1
+   rust-titlecase-1 rust-tokio-1 rust-toml-0.5 rust-trash-2 rust-tui-0.15
+   rust-umask-1 rust-unicode-segmentation-1 rust-unicode-width-0.1 rust-url-2
+   rust-users-0.11 rust-uuid-0.8 rust-webbrowser-0.5 rust-which-4 rust-winapi-0.3
+   rust-zip-0.5)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages groff)
@@ -60,9 +89,7 @@ (define-module (gnu packages shells)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
-  #:use-module (gnu packages rust)
-  #:use-module (gnu packages rust-apps)
-  #:use-module (gnu packages scheme)
+  #:autoload (gnu packages scheme) (scheme48 scheme48-rx)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages xdisorg)
diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm
index bbb070ddf6..b90613a9e4 100644
--- a/gnu/packages/sphinx.scm
+++ b/gnu/packages/sphinx.scm
@@ -45,18 +45,14 @@ (define-module (gnu packages sphinx)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
   #:use-module (gnu packages check)
-  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages image)
-  #:use-module (gnu packages imagemagick)
+  #:autoload (gnu packages imagemagick) (imagemagick)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-check)
-  #:use-module (gnu packages python-crypto)
+  #:autoload (gnu packages python-crypto) (python-certifi)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages time)
-  #:use-module (gnu packages python-science)
-  #:use-module (gnu packages graph)
   #:use-module (gnu packages tex))
 
 (define-public python-sphinx
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index aa540c1012..e63b409b34 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -59,13 +59,14 @@ (define-module (gnu packages ssh)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages popt)
-  #:use-module (gnu packages protobuf)
+  #:autoload (gnu packages protobuf) (protobuf)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-crypto)
+  #:autoload (gnu packages python-crypto)
+  (python-bcrypt python-cryptography python-paramiko python-pyopenssl)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
-  #:use-module (gnu packages security-token)
+  #:autoload (gnu packages security-token) (libfido2 python-fido2)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages xorg)
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 6d3572cf25..af2028d6ab 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -62,7 +62,7 @@ (define-module (gnu packages tex)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages lisp)
+  #:autoload (gnu packages lisp) (clisp)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gd)
@@ -71,10 +71,10 @@ (define-module (gnu packages tex)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
-  #:use-module (gnu packages libreoffice)
-  #:use-module (gnu packages lua)
+  #:autoload (gnu packages libreoffice) (mythes hunspell)
+  #:autoload (gnu packages lua) (lua)
   #:use-module (gnu packages multiprecision)
-  #:use-module (gnu packages pdf)
+  #:autoload (gnu packages pdf) (poppler-qt5)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index 7898d520f0..7d75aff60a 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -59,9 +59,15 @@ (define-module (gnu packages textutils)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gcc)
-  #:use-module (gnu packages golang)
+  #:autoload (gnu packages golang)
+  (go-github-com-fatih-color
+   go-github-com-mattn-go-colorable go-github-com-mitchellh-mapstructure
+   go-github-com-olekukonko-tablewriter go-github-com-oneofone-xxhash
+   go-github-com-spaolacci-murmur3 go-github-com-spf13-afero
+   go-github-com-spf13-cobra go-github-com-stretchr-testify
+   go-github-com-urfave-cli go-golang-org-x-sys)
   #:use-module (gnu packages gettext)
-  #:use-module (gnu packages java)
+  #:autoload (gnu packages java) (java-hamcrest-core java-junit)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
@@ -72,7 +78,7 @@ (define-module (gnu packages textutils)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages slang)
-  #:use-module (gnu packages syncthing)
+  #:autoload (gnu packages syncthing) (go-github-com-cespare-xxhash)
   #:use-module (gnu packages web))
 
 (define-public dos2unix
diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm
index fea9ff25f7..5709414828 100644
--- a/gnu/packages/time.scm
+++ b/gnu/packages/time.scm
@@ -40,12 +40,13 @@
 (define-module (gnu packages time)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages golang)
+  #:autoload (gnu packages golang)
+  (go-1.17 go-github-com-charmbracelet-bubbletea go-github-com-muesli-termenv)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages terminals)
+  #:autoload (gnu packages terminals) (go-github.com-nsf-termbox-go)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages)
   #:use-module (guix build-system gnu)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 4ee75ace3d..b3d4aae797 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -58,7 +58,7 @@ (define-module (gnu packages tls)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages check)
   #:use-module (gnu packages curl)
-  #:use-module (gnu packages dns)
+  #:autoload (gnu packages dns) (unbound)
   #:use-module (gnu packages gawk)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages guile)
@@ -73,8 +73,11 @@ (define-module (gnu packages tls)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-crypto)
-  #:use-module (gnu packages python-web)
+  #:autoload (gnu packages python-crypto)
+  (python-cryptography python-josepy python-pyopenssl)
+  #:autoload (gnu packages python-web)
+  (python-requests python-requests-toolbelt python-zope-component
+                   python-zope-interface)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages texinfo)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 556eb46df4..200ce3fcd6 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -113,13 +113,27 @@ (define-module (gnu packages video)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages build-tools)
-  #:use-module (gnu packages cdrom)
+  #:autoload (gnu packages cdrom) (libcddb libcdio-paranoia cdparanoia)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
-  #:use-module (gnu packages crates-io)
-  #:use-module (gnu packages crates-graphics)
+  #:autoload (gnu packages crates-io)
+  (rust-arbitrary-0.4
+   rust-arg-enum-proc-macro-0.3 rust-arrayvec-0.7 rust-assert-cmd-2
+   rust-av-metrics-0.7 rust-backtrace-0.3 rust-bindgen-0.54 rust-bitstream-io-1
+   rust-byteorder-1 rust-cc-1 rust-cfg-if-1 rust-clap-2 rust-console-0.14
+   rust-criterion-0.3 rust-crossbeam-0.8 rust-fern-0.6 rust-interpolate-name-0.2
+   rust-itertools-0.10 rust-ivf-0.1 rust-libc-0.2 rust-libfuzzer-sys-0.3
+   rust-log-0.4 rust-metadeps-1 rust-nasm-rs-0.2 rust-noop-proc-macro-0.3
+   rust-num-derive-0.3 rust-num-traits-0.2 rust-paste-1
+   rust-pretty-assertions-0.7 rust-rand-0.8 rust-rand-chacha-0.3 rust-rayon-1
+   rust-regex-1 rust-rust-hawktracer-0.7 rust-rustc-version-0.4
+   rust-scan-fmt-0.2 rust-semver-1 rust-serde-1 rust-signal-hook-0.3
+   rust-simd-helpers-0.1 rust-thiserror-1 rust-toml-0.5 rust-v-frame-0.2
+   rust-vergen-3 rust-wasm-bindgen-0.2)
+  #:autoload (gnu packages crates-graphics)
+  (rust-aom-sys-0.3 rust-dav1d-sys-0.3 rust-image-0.23 rust-y4m-0.7)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages dbm)
   #:use-module (gnu packages dejagnu)
@@ -139,49 +153,50 @@ (define-module (gnu packages video)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages gnome)
-  #:use-module (gnu packages gnunet)
+  #:autoload (gnu packages gnunet) (libmicrohttpd)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
-  #:use-module (gnu packages haskell-xyz)
+  #:autoload (gnu packages haskell-xyz) (pandoc)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages libidn)
-  #:use-module (gnu packages libreoffice)
-  #:use-module (gnu packages libusb)
+  #:autoload (gnu packages libreoffice) (hunspell)
+  #:autoload (gnu packages libusb) (libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
-  #:use-module (gnu packages lua)
+  #:autoload (gnu packages lua) (luajit lua-5.2)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages man)
-  #:use-module (gnu packages markup)
+  #:autoload (gnu packages markup) (cmark)
   #:use-module (gnu packages maths)
-  #:use-module (gnu packages music)
-  #:use-module (gnu packages mp3)
+  #:autoload (gnu packages music) (python-mutagen)
+  #:autoload (gnu packages mp3) (lame libmad mpg123 taglib)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
-  #:use-module (gnu packages ocr)
+  #:autoload (gnu packages ocr) (tesseract-ocr)
   #:use-module (gnu packages pcre)
-  #:use-module (gnu packages pciutils)
+  #:autoload (gnu packages pciutils) (pciutils)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages perl-web)
-  #:use-module (gnu packages photo)
+  #:autoload (gnu packages photo) (libexif)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages popt)
-  #:use-module (gnu packages pretty-print)
-  #:use-module (gnu packages protobuf)
-  #:use-module (gnu packages pulseaudio)
+  #:autoload (gnu packages pretty-print) (fmt)
+  #:autoload (gnu packages protobuf) (protobuf)
+  #:autoload (gnu packages pulseaudio) (libsamplerate pulseaudio)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-crypto)
+  #:autoload (gnu packages python-crypto)
+  (python-certifi python-pycryptodome python-pycryptodomex)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdesktop)
   #:use-module (gnu packages re2c)
   #:use-module (gnu packages ruby)
-  #:use-module (gnu packages rust-apps)
+  #:autoload (gnu packages rust-apps) (rust-cargo-c)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages serialization)
@@ -193,12 +208,11 @@ (define-module (gnu packages video)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages time)
-  #:use-module (gnu packages upnp)
-  #:use-module (gnu packages vulkan)
+  #:autoload (gnu packages upnp) (libupnp)
+  #:autoload (gnu packages vulkan) (vulkan-headers vulkan-loader shaderc)
   #:use-module (gnu packages web)
-  #:use-module (gnu packages webkit)
-  #:use-module (gnu packages wget)
-  #:use-module (gnu packages wxwidgets)
+  #:autoload (gnu packages wget) (wget)
+  #:autoload (gnu packages wxwidgets) (wxwidgets-gtk2)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm
index 73338c73b3..352ef5c64b 100644
--- a/gnu/packages/wget.scm
+++ b/gnu/packages/wget.scm
@@ -28,7 +28,7 @@ (define-module (gnu packages wget)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
-  #:use-module (gnu packages gnunet)
+  #:autoload (gnu packages gnunet) (libmicrohttpd)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages pcre)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 7be995a438..40bc09776a 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -103,12 +103,11 @@ (define-module (gnu packages xdisorg)
   #:use-module (gnu packages gawk)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
-  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
-  #:use-module (gnu packages haskell-xyz)
+  #:autoload (gnu packages haskell-xyz) (pandoc)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libbsd)
@@ -125,7 +124,7 @@ (define-module (gnu packages xdisorg)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages tcl)
-  #:use-module (gnu packages terminals)
+  #:autoload (gnu packages terminals) (libptytty)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages)
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index ed06cb3925..70fb8442b3 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -63,27 +63,26 @@ (define-module (gnu packages xorg)
   #:use-module (guix build-system python)
   #:use-module (guix utils)
   #:use-module (gnu packages)
-  #:use-module (gnu packages aidc)
-  #:use-module (gnu packages anthy)
+  #:autoload (gnu packages anthy) (anthy)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages emacs)
+  #:autoload (gnu packages emacs) (emacs-minimal m17n-lib)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
-  #:use-module (gnu packages gl)
+  #:autoload (gnu packages gl) (libepoxy libglvnd mesa mesa-headers)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages gtk)
-  #:use-module (gnu packages haskell-xyz)
-  #:use-module (gnu packages inkscape)
+  #:autoload (gnu packages haskell-xyz) (pandoc)
+  #:autoload (gnu packages inkscape) (inkscape/stable)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages libbsd)
@@ -99,11 +98,11 @@ (define-module (gnu packages xorg)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-compression)
-  #:use-module (gnu packages python-crypto)
+  #:autoload (gnu packages python-crypto) (python-paramiko)
   #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages qt)
-  #:use-module (gnu packages spice)
-  #:use-module (gnu packages video)
+  #:autoload (gnu packages qt) (qtbase-5 qtx11extras)
+  #:autoload (gnu packages spice) (spice-protocol)
+  #:autoload (gnu packages video) (ffmpeg libvpx libx264 x265)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xdisorg))
