Thanks, everyone, for all of the suggestions!

On Thursday, July 24, 2014 5:53:59 AM UTC-5, Eyal Lotem wrote:
There's also ghc's -ddump-minimal-imports which might help you.


On Thu, Jul 24, 2014 at 12:06 PM, JP Moresmau <jpmor...@gmail.com> wrote:
BuildWrapper doesn't do the transformation, but it resolves all symbols to build a usage map, so it would tell you that Data.List.sort is used at line xxx, using the GHC API. So have a look at around https://github.com/JPMoresmau/BuildWrapper/blob/master/src/Language/Haskell/BuildWrapper/API.hs#L239. BuildWrapper takes the GHC AST, transforms it into a JSON structure, and extracts all usage information. There is also an import reorganization function that may be useful.

JP


On Thu, Jul 24, 2014 at 10:29 AM, Erik Rantapaa <eran...@gmail.com> wrote:
Hi everyone,

I looking for a way to analyze Haskell source to determine which module each imported symbol comes from. My goal is to transform source code like this:

    import Data.List
    ...
    main = do
      nums <- fmap (map read . words) getLine :: IO [Int]
      print $ sort nums

to code like this:

    import qualified Prelude as B
    import qualified Data.List as A
    ...
    main = do
      nums <- B.fmap (B.map B.read B.. B.words) B.getLine :: B.IO [B.Int]
      B.print B.$ A.sort nums

That is, I want to qualify all imported symbols with a module alias.

Can anyone suggest modules or programs I should look at?

Thanks,
ER

_______________________________________________
Haskell-Cafe mailing list
Haskel...@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe




--
JP Moresmau
http://jpmoresmau.blogspot.com/

--
You received this message because you are subscribed to the Google Groups "Haskell-cafe" group.
To unsubscribe from this group and stop receiving emails from it, send an email to haskell-cafe...@googlegroups.com.
To post to this group, send email to haskel...@googlegroups.com.
Visit this group at http://groups.google.com/group/haskell-cafe.
For more options, visit https://groups.google.com/d/optout.



--
Eyal