[Haskell-cafe] Hint's setImports usage
Michael Sloan
mgsloan at gmail.com
Sat Dec 22 23:47:38 CET 2012
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 <mgsloan at 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 <lists at 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 <lists at mhilbig.de
>>> <mailto:lists at 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 <lists at mhilbig.de
>>> <mailto:lists at mhilbig.de>
>>> <mailto:lists at mhilbig.de <mailto:lists at 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 at haskell.org <mailto:Haskell-Cafe at haskell.**org<Haskell-Cafe at haskell.org>
>>> >
>>> <mailto:Haskell-Cafe at haskell._**_org
>>> <mailto:Haskell-Cafe at haskell.**org <Haskell-Cafe at 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>
>>> >**>
>>>
>>>
>>>
>>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20121222/be093003/attachment.htm>
More information about the Haskell-Cafe
mailing list