[Haskell-beginners] 'cabal install hdirect' can't find hdirect
Larry Evans
cppljevans at suddenlink.net
Sun Jul 4 17:45:29 EDT 2010
On 07/04/10 11:19, Stephen Tetley wrote:
> Hi Larry
>
>
> Hugs comes with a library - FiniteMap. Maybe FiniteMaps is a spelling
> mistake or maybe it it a module the Wolfram Kahl didn't distribute.
>
>
Thanks Stephen,
I changed the name; however, then 2 other names needed
changing:
lookupDftFM -> lookupWithDefaultFM
zeroFM -> emptyFM
However, even after those changes, I got several errors:
~/prog_dev/haskell/modular-interpreter $ ghc
-fallow-overlapping-instances -fallow-undecidable-instances
-fglasgow-exts -o Int Interpreter.hs
Interpreter.hs:155:39:
Couldn't match expected type `FiniteMap Name (InterpM Value)'
against inferred type `Name'
In the first argument of `addToFM', namely `n'
In the first argument of `Env', namely `(addToFM n v e)'
In the expression: Env (addToFM n v e)
Interpreter.hs:203:14:
Overlapping instances for StateMonad
s
(StateT
Store (EnvT Env (ContT Answer (StateT
[String] (ErrorT [])))))
arising from a use of `liftSTFun' at Interpreter.hs:203:14-38
Matching instances:
instance [overlap ok] (StateMonad s m, MonadT t m) =>
StateMonad s (t m)
-- Defined at Interpreter.hs:(391,0)-(392,23)
instance [overlap ok] (Monad m) => StateMonad s (StateT s m)
-- Defined at Interpreter.hs:(301,0)-(302,43)
(The choice depends on the instantiation of `s'
To pick the first instance above, use -fallow-incoherent-instances
when compiling the other instance declarations)
In the expression: liftSTFun (updateStore p)
In the definition of `updateLoc':
updateLoc p = liftSTFun (updateStore p)
Interpreter.hs:211:56:
Couldn't match expected type `InterpM Value'
against inferred type `FiniteMap Integer (InterpM Value)'
In the third argument of `addToFM', namely `fm'
In the second argument of `Store', namely `(addToFM i v fm)'
In the expression: Store n (addToFM i v fm)
Interpreter.hs:427:9:
The scoped type variables `env' and `r'
are bound to the same type (variable)
Distinct scoped type variables must be distinct
In the pattern: r :: env
In the definition of `inEnv':
inEnv (r :: env) (ContT c)
= ContT
(\ k -> do o <- rdEnv
inEnv r (c (inEnv (o :: env) . k)))
In the definition for method `inEnv'
~/prog_dev/haskell/modular-interpreter $
Any suggestions for workarounds would be appreciated.
-regards,
Larry
More information about the Beginners
mailing list