Off-topic, why did you switch from xmonad to i3?
For me i3 strikes the sweetspot of dead simple config, incredible feature set, and performance. This after coming from Awesome WM where I found myself spending way too much time tweaking Lua script to get things pixel perfect, which you basically get out of the box for free with i3.
Since xmonad is a Haskell library, you need the compiler. There's a reason why ghc is so big compared to other compilers, but just because it is a big dependency, it doesn't make xmonad any less lightweight
This is why I use dwm, because I don't know C and thus I can't configure it, and thus I use what I have and use the time I'd spend to configure it to do other things. Another reason is that I can just check it in to my dotfiles.