Hello,

I'm playing around a bit with the hmatrix package 
(http://hackage.haskell.org/package/hmatrix) but can't quite figure out how to 
make the cmap function in Numeric.Container work.

An example:

ghci> import Numeric.LinearAlgebra
ghci> let v = fromList [1.0,2.0,3.0]
ghci> v
fromList [1.0,2.0,3.0] :: Data.Vector.Storable.Vector
ghci> :t v
v :: Vector Double
ghci> cmap sqrt v

<interactive>:1:1:
    No instance for (Container Vector e0)
      arising from a use of `cmap'
    Possible fix: add an instance declaration for (Container Vector e0)
    In the expression: cmap sqrt v
    In an equation for `it': it = cmap sqrt v

ghci> :t cmap
cmap
  :: (Container c e, Element b, Element a) => (a -> b) -> c a -> c b

There is an instance for (Container Vector Double) but I assume that since the 
signature of cmap doesn't mention the type variable 'e' GHCi can't infer it. 
Googling hasn't helped me so far, except for digging up another post to this 
list with the same (?) problem, but no answer: 
http://www.haskell.org/pipermail/haskell-cafe/2011-April/091390.html

Is there a way to tell GHC what instance to use, or how should cmap be used?

Thanks!
Mats



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

Reply via email to