
You'd still have to handle the case that the Value is not what you
expected. Otherwise you'll have a partial function (i.e. error in case of
certain inputs).
So maybe you'd best use aeson directly (which spares you the GetValue
instances as well).
getValue :: (FromJSON a) => Text -> Map Text a -> Maybe a
Best
Jan
P.S. There is no such thing as a stupid question.
Baa
Hello, Jan! I "remove" the question :) Problem was: reading of HTML form values, which can be any type and saving them in a map. I done it w/ `Map Text Value` (instead of previous `Map Text Text`). To get values from the map, I implemented class and several instances which returns values of different types, something like:
class GetValue a where getValue :: Text -> Map Text Value -> a
(promoting of `a` anywhere in the existing code needs big refactoring, so map's value is `::Value` but not `::a`). Cons is a need to implement N instances of `GetValue`: one per getting type.
Anywhere, Jan, thanks for quick answer, I'm sorry for this stupid question.
Hi,
You don't know anything about your a's but that they have FromJSON instances. That in turn means you can get values from aeson parsing functions. Think parseJSON :: Value -> Parser a Could you be more specific about the problem you try to solve?
Best Jan
Baa
schrieb am Di., 1. Aug. 2017, 10:32: Hello, List!
I have, for example, function with signature like
fn :: FromJSON a => Map Text a -> BlahBlah
and I want to treat this `a` as String (or `Text`), to read it with `readMaybe`. Am I right that it's impossible? I get error about "...a is rigid type and could not be matched with Text...". But `Text` is `FromJSON` instance. Is it possible to do it (cast, convert, unwrap, etc)?
The problem's source is that early I worked with `Text` values only (getting from HTML form) but now they become any type: int's, bool's, etc).
=== Best regards, Paul _______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
_______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners