
Hi,
thank you for the tip! It helps but it's not quite there yet. If you see
the program in attachment, I can make it compile only by commenting the
type declaration for the second function, otherwise it's the exact same
error message as before.
In -Wall the compiler does suggest me the signature, but it's not
enlightening for me at this point, I've yet to dig that deep in haskell's
type system:
parseConfigMap :: forall t (m :: * -> *). Monad m => t -> m ()
Can you explain me why my type signature is not correct?
Thank you again!
Emmanuel
On Sun, Mar 17, 2013 at 1:23 PM, Andres Löh
Hi there.
-- | A JSON \"object\" (key\/value map). type Object = Map Text Value
See https://github.com/bos/aeson/blob/master/release-notes.markdown
Quoting:
" 0.3 to 0.4
[...]
We switched the intermediate representation of JSON objects from Data.Map to Data.HashMap, which has improved type conversion performance. "
So my clearly flawed plan is to get the value, pattern mach it against (Object hash) and then work on the hash. However for the program in attachment, which I would expect to compile, I get this compile error:
question.hs:12:62: Couldn't match expected type `Map.Map T.Text Value' with actual type `Object' In the first argument of `parseConfigMap', namely `map' In the second argument of `($)', namely `parseConfigMap map' In the expression: return $ parseConfigMap map
This has nothing to do with "type" vs. "data". The type synonym expansion of Object doesn't match your type, because it uses a HashMap rather than a Map.
Cheers, Andres
-- Andres Löh, Haskell Consultant Well-Typed LLP, http://www.well-typed.com
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners