A little over a year ago I hacked together a treesitter grammar for Cabal as I didn’t find one. It seems to be good enough (I’m using it daily in my Emacs config), but I’m sure it could be improved in many ways.
Hopefully it’s useful to others, and maybe it can even serve as a starting point to get an official grammar, or at least kickstart the creation of one.