I've looked into the custom "Prelude.hs" approach, and it's a bit tricky, but does work out:
https://gist.github.com/4361578 The interpreter needs to run in the same directory as your "Prelude.hs". However, if you try to run "ghci" in that directory, it will fail - because it doesn't know that it needs to load your "Prelude.hs" instead of the ordinary one. (Seeing ghci fail in the presence of a "Prelude.hs" is the only reason I thought that this might work - and it did!) Hope that's helpful! -Michael On Thu, Dec 20, 2012 at 5:19 PM, Michael Sloan <mgsl...@gmail.com> wrote: > Ahh, right! Now that I think harder about it, as far as I know, there is > no way to get Hint to load a module with an extra import. If it doesn't > hide the prelude, then one thing to try would be writing your own > "./Prelude.hs" file. I'd test this, but I'm not currently on a computer > with GHC. > > If this module is in a package, then there's definitely no way to give it > an extra import (it's already compiled). > > Hope that helps! > > -Michael > > > > On Thu, Dec 20, 2012 at 5:02 PM, Martin Hilbig <li...@mhilbig.de> wrote: > >> On 21.12.2012 01:23, Michael Sloan wrote: >> >>> Yeah, I've run into that too.. >>> >>> It does seem like there ought to be a better way, but in order to get >>> around that, I just define the imports (or generate) "MyPrelude.hs" in >>> the current directory. >>> >> >> what do you do with the file then? neither loadModules, setImports, >> setTopLevelModules helped me :/ >> >> have fun >> martin >> >> That file can just consist of "import >>> OtherPackage.MyPrelude". >>> >>> -Michael >>> >>> >>> On Thu, Dec 20, 2012 at 4:12 PM, Martin Hilbig <li...@mhilbig.de >>> <mailto:li...@mhilbig.de>> wrote: >>> >>> oh that's neat! >>> >>> but what to do if MyPrelude is provided by some package? >>> >>> i get this error: >>> >>> module `MyPrelude' is a package module >>> >>> and neither >>> >>> set [languageExtensions := [PackageImports]] >>> >>> nor >>> >>> {-# LANGUAGE PackageImports #-} >>> >>> helps. >>> >>> have fun >>> martin >>> >>> >>> On 21.12.2012 00:55, Michael Sloan wrote: >>> >>> Hello! >>> >>> Try doing this first: >>> >>> loadModules ["My.Module"] >>> >>> You may also need to set the "searchPath" - it defaults to the >>> current >>> director. Another good function to know about is >>> "setTopLevelModules", >>> which is just like using ":load" in ghci - it imports everything >>> in the >>> module, including its imports. So, I often do: >>> >>> loadModules ["MyPrelude"] >>> setTopLevelModules ["MyPrelude"] >>> >>> And stick all of the things that I want to be in scope into >>> "MyPrelude.hs". >>> >>> -Michael >>> >>> >>> On Thu, Dec 20, 2012 at 3:35 PM, Martin Hilbig <li...@mhilbig.de >>> <mailto:li...@mhilbig.de> >>> <mailto:li...@mhilbig.de <mailto:li...@mhilbig.de>>> wrote: >>> >>> hi, >>> >>> how to use Language.Haskell.Interpreter._**___setImports? >>> >>> >>> >>> i use it like: >>> >>> setImports ["My.Module"] >>> >>> so that my interpreted modules don't need to: >>> >>> import My.Module >>> >>> But i still get: >>> >>> Not in scope: data constructor `MyType' >>> >>> What am i doing wrong? >>> >>> Thanks in advance. >>> >>> have fun >>> martin >>> >>> ______________________________**_____________________ >>> >>> Haskell-Cafe mailing list >>> Haskell-Cafe@haskell.org >>> <mailto:Haskell-Cafe@haskell.**org<Haskell-Cafe@haskell.org> >>> > >>> <mailto:Haskell-Cafe@haskell._**_org >>> <mailto:Haskell-Cafe@haskell.**org <Haskell-Cafe@haskell.org>>> >>> >>> http://www.haskell.org/____**mailman/listinfo/haskell-cafe<http://www.haskell.org/____mailman/listinfo/haskell-cafe> >>> >>> <http://www.haskell.org/__**mailman/listinfo/haskell-cafe<http://www.haskell.org/__mailman/listinfo/haskell-cafe> >>> > >>> >>> <http://www.haskell.org/__**mailman/listinfo/haskell-cafe<http://www.haskell.org/__mailman/listinfo/haskell-cafe> >>> >>> <http://www.haskell.org/**mailman/listinfo/haskell-cafe<http://www.haskell.org/mailman/listinfo/haskell-cafe> >>> >**> >>> >>> >>> >>> >
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe