Xmonad is a dynamically tiling X11 window manager that is written and configured in Haskell. In a normal WM, you spend half your time aligning and searching for windows. Xmonad makes work easier, by automating this.
There is an Xmonad package available on the void repositories, but it only contains an xmonad executable mostly useful for convenient recompiles. Xmonad needs to be recompiled for configuration and for that reason it requires downloading the Haskell ecosystem. This suite of tools includes a Haskell package manager, Cabal, that can be used to install the most recent version of Xmonad and its extensions.
Installation of Haskell Tools
xbps-install -S ghc cabal-install
To get the cabal database:
Installation of the window manager
If you try to install Xmonad with cabal, you'll find that it can't end the installation and exits on a cryptic error message. This can be solved. At the time of writing, a Haskell package called X11 will fail. In general, if you get cryptic error messages while installing a big package with cabal, you'll see which dependency failed and try that dependency alone. This will show that X11 requires some additional X libraries.
xbps-install -S libXinerama-devel libXrandr-devel libXScrnSaver-devel
Finally, Xmonad installation:
cabal install xmonad
Usually, for further customization (extensively documented around the web and with no particularities on Void) you'll want the xmonad-contrib package, also available in cabal. Again, if you try at first "cabal install xmonad-contrib" it would fail. If you try cabaling the dependency that fails you'll see it needs the pkg-config program. Once you install it through xbps you'll be able to install the xmonad-contrib package. So:
xbps-install -S pkg-config
cabal install xmonad-contrib