fields-json 0.2 → 0.2.1
raw patch · 5 files changed
+15/−7 lines, 5 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Text.JSON.FromJSValue: instance [incoherent] (FromJSValue a, FromJSValue b) => FromJSValue (a, b)
+ Text.JSON.ToJSValue: instance [incoherent] (ToJSValue a, ToJSValue b) => ToJSValue (a, b)
Files
- fields-json.cabal +7/−3
- src/Text/JSON/FromJSValue.hs +5/−1
- src/Text/JSON/Gen.hs +0/−2
- src/Text/JSON/JSValueContainer.hs +0/−1
- src/Text/JSON/ToJSValue.hs +3/−0
fields-json.cabal view
@@ -1,5 +1,5 @@ Name: fields-json-Version: 0.2+Version: 0.2.1 Synopsis: Abusing monadic syntax JSON objects generation. Description: @@ -13,7 +13,7 @@ Stability: Development Category: Web Build-type: Simple-Cabal-version: >=1.4+Cabal-version: >=1.6 library@@ -24,7 +24,7 @@ Text.JSON.JSValueContainer hs-source-dirs: src - GHC-Options: -Werror+ GHC-Options: -Wall build-depends: base >= 4 && < 5 build-depends: json >= 0.4.4 build-depends: containers@@ -40,3 +40,7 @@ GeneralizedNewtypeDeriving, MultiParamTypeClasses, StandaloneDeriving++source-repository head+ type: git+ location: git://github.com/scrive/fields-json.git
src/Text/JSON/FromJSValue.hs view
@@ -32,7 +32,6 @@ import Data.Ratio import Control.Monad.Identity import Data.Maybe-import Text.JSON.String -- | Structures that can be 'parsed' from JSON. Instances must declare either 'fromJSValue' (parse directly from 'JSValue') or 'fromJSValueM' (uses 'MonadReader')@@ -78,6 +77,11 @@ instance (FromJSValue a) => FromJSValue (Maybe a) where fromJSValue = join . fromJSValue +instance (FromJSValue a, FromJSValue b) => FromJSValue (a,b) where+ fromJSValue (JSArray [a,b]) = do a' <- fromJSValue a+ b' <- fromJSValue b+ return (a',b')+ fromJSValue _ = Nothing -- ----------------------------------------------------------------
src/Text/JSON/Gen.hs view
@@ -54,9 +54,7 @@ import Control.Monad.Trans import Control.Monad.State.Strict import Control.Monad.Reader-import Control.Monad.Reader.Class -import Data.Foldable import Data.Sequence as S import Text.JSON import Text.JSON.ToJSValue
src/Text/JSON/JSValueContainer.hs view
@@ -18,7 +18,6 @@ import Text.JSON import Data.Sequence as S import Data.Foldable-import Text.JSON class JSValueContainer a where getJSValue :: a -> JSValue
src/Text/JSON/ToJSValue.hs view
@@ -40,3 +40,6 @@ instance ToJSValue a => ToJSValue (Maybe a) where toJSValue = maybe JSNull toJSValue++instance (ToJSValue a, ToJSValue b) => ToJSValue (a,b) where+ toJSValue (a,b) = JSArray [toJSValue a, toJSValue b]