
Forget it. It's more clear reading further.
Sorry for the noise.
On Sat, Dec 27, 2008 at 1:02 AM, Oscar Picasso
From Real World Haskell:
data JValue = JString String | JNumber Double | JBool Bool | JNull | JObject [(String, JValue)] | JArray [JValue] deriving (Eq, Ord, Show)
.... type JSONError = String
class JSON a where toJValue :: a -> JValue fromJValue :: JValue -> Either JSONError a
instance JSON JValue where toJValue = id -- Really ? fromJValue = Right
Now, instead of applying a constructor like JNumber to a value to wrap it,
we apply the toJValue function. If we change a value's type, the compiler will choose a suitable implementation of toJValue to use with it.
Actually it does not work. And I don't see how it could with this toJValue implementation. Is it possible to make it work by providing another implementation?
Oscar