Re: [Haskell-cafe] Hint's setImports usage

2012-12-22 Thread Michael Sloan
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.**orgHaskell-Cafe@haskell.org
 
 mailto:Haskell-Cafe@haskell._**_org
 mailto:Haskell-Cafe@haskell.**org Haskell-Cafe@haskell.org
 
 http://www.haskell.org/**mailman/listinfo/haskell-cafehttp://www.haskell.org/mailman/listinfo/haskell-cafe
 
 http://www.haskell.org/__**mailman/listinfo/haskell-cafehttp://www.haskell.org/__mailman/listinfo/haskell-cafe
 
  
 http://www.haskell.org/__**mailman/listinfo/haskell-cafehttp://www.haskell.org/__mailman/listinfo/haskell-cafe
 
 http://www.haskell.org/**mailman/listinfo/haskell-cafehttp://www.haskell.org/mailman/listinfo/haskell-cafe
 **





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


[Haskell-cafe] Hint's setImports usage

2012-12-20 Thread Martin Hilbig

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
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Hint's setImports usage

2012-12-20 Thread Michael Sloan
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 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
 http://www.haskell.org/**mailman/listinfo/haskell-cafehttp://www.haskell.org/mailman/listinfo/haskell-cafe

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


Re: [Haskell-cafe] Hint's setImports usage

2012-12-20 Thread Martin Hilbig

ok, i figured it out so far (just after hitting send ;)

'setImports' makes 'My.Modules' stuff available to the interpreted code 
itself (a call to some of my wrapper functions) but not to my module 
My.Interpreted.Module where which i use via


  setTopLevelModule [My.Interpreted.Module]

So i guess there is no way to add the import to the 
'My.Interpreted.Module' for convenience.


Sorry for the noise.

have fun
martin

On 21.12.2012 00:35, Martin Hilbig 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
http://www.haskell.org/mailman/listinfo/haskell-cafe


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


Re: [Haskell-cafe] Hint's setImports usage

2012-12-20 Thread Martin Hilbig

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 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
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


Re: [Haskell-cafe] Hint's setImports usage

2012-12-20 Thread Michael Sloan
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.  That file can just consist of import
OtherPackage.MyPrelude.

-Michael


On Thu, Dec 20, 2012 at 4:12 PM, Martin Hilbig 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 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.**orgHaskell-Cafe@haskell.org
 
 
 http://www.haskell.org/__**mailman/listinfo/haskell-cafehttp://www.haskell.org/__mailman/listinfo/haskell-cafe
 
 http://www.haskell.org/**mailman/listinfo/haskell-cafehttp://www.haskell.org/mailman/listinfo/haskell-cafe
 



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


Re: [Haskell-cafe] Hint's setImports usage

2012-12-20 Thread Martin Hilbig

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
mailto:Haskell-Cafe@haskell.__org
mailto: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





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


Re: [Haskell-cafe] Hint's setImports usage

2012-12-20 Thread Michael Sloan
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.**orgHaskell-Cafe@haskell.org
 
 mailto:Haskell-Cafe@haskell._**_org
 mailto:Haskell-Cafe@haskell.**org Haskell-Cafe@haskell.org
 
 http://www.haskell.org/**mailman/listinfo/haskell-cafehttp://www.haskell.org/mailman/listinfo/haskell-cafe
 
 http://www.haskell.org/__**mailman/listinfo/haskell-cafehttp://www.haskell.org/__mailman/listinfo/haskell-cafe
 
  
 http://www.haskell.org/__**mailman/listinfo/haskell-cafehttp://www.haskell.org/__mailman/listinfo/haskell-cafe
 
 http://www.haskell.org/**mailman/listinfo/haskell-cafehttp://www.haskell.org/mailman/listinfo/haskell-cafe
 **




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