>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
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to