This is related to a feature in the futhark compiler, which is a language with a similar module system.

I am trying to create a tool to detect unused top-level functions in Futhark, and I have been looking in the ghc codebase to find out how it does so. So far I have found these areas:

  1. warning flag
  2. WarnUnusedTopBinds

The project is a bit too big for my machine to take, so HLS is not helping me with finding where the computation of unused bindings (specifically functions) is done.
I would like some help with finding where ghc does this computation, and maybe some help with the naming conventions of the code.

Thanks in advance.