(GHC newbie alert -- is this the right mailing list for these kind of questions?)

I"m writing some code to figure out all the instances of particular type-classes and after exploring a lot of options (hlint, haskell-src-exts, annotations, doctests, etc), I realized that the compiler had already figured it out and written it to disk for me!

More digging led me to https://www.stackage.org/haddock/lts-9.0/ghc-8.0.2/LoadIface.html#v:loadSrcInterface after which I got stuck. How does one call this function? Specifically:

* What is SDoc and how to construct a reasonable value for this argument?
* IsBootInterface would mostly be False, right?
* What does `Maybe FastString` represent and how does one construct it?
* Finally how does one evaluate the resulting monadic action to get access to the underlying `ModIface`?

-- Saurabh.