A JSON value.
JTrue :: JValue: true
JFalse :: JValue: false
JNull :: JValue: null, i.e. a missing value
JString :: String -> JValue: a JSON string
JNumber :: Float -> JValue: a JSON number (numbers are always floats in JSON)
JArray :: [JValue] -> JValue: a JSON array, represented by a list of JValues
JObject :: [(String,JValue)] -> JValue: a JSON object, represented by a map from Strings to JValues