On 5/17/11 11:53 PM, KC wrote:
If you're importing the module as

import qualified Math.FFT as FFT

Shouldn't "Math.FFT" become "FFT"?  :)

Nope.

Depending on your definition of "should" at least. Hierarchical modules are not considered entities exported by modules further up on the tree. So that's not the specified behavior of qualified imports. (Whether it should be is a separate debate.)


On Tue, May 17, 2011 at 8:44 PM,<bri...@aracnet.com>  wrote:
for example:

I will ask the glorious compiler, and it says:

*Main>  :t calcFFT
calcFFT
  :: (Math.FFT.Base.FFTWReal r) =>
     V.Vector (Complex r) ->  V.Vector (Complex r)

I then put the signature in my code, reload it, and:

  Not in scope: type constructor or class `Math.FFT.Base.FFTWReal'

You can have functions in scope whose types include types which are not themselves in scope. In these situations, GHC/GHCi is smart enough to know where those types live, so it tells you; but since they're not in the current namespace you have no way of referring to them yourself.

The solution is just to import Math.FFT.Base (or any other module that re-exports FFTWReal).

--
Live well,
~wren

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

Reply via email to