You can try haskdogs, which provides a thin wrapper around hasktags and executes it for your imported modules as well as your own code. It maintains a repository of module sources in ~/.haskdogs
and indexes into that.
I'm using it with vi and have been quite happy with it so far.