@@ -22,20 +22,21 @@ module Data.Schematic
25−import Control.Monad.Validation
25+import Control.Monad.Validation
26−import Data.Aeson as J
26+import Data.Aeson as J
27−import Data.Aeson.Types as J
27+import Data.Aeson.Types as J
28−import Data.ByteString.Lazy as BL
28+import Data.ByteString.Lazy as BL
29−import Data.Functor.Identity as F
29+import Data.Functor.Identity as F
30−import Data.Schematic.DSL
30+import Data.Schematic.DSL
31−import Data.Schematic.Helpers
31+import Data.Schematic.Helpers
32−import Data.Schematic.JsonSchema
32+import Data.Schematic.JsonSchema
33−import Data.Schematic.Lens
33+import Data.Schematic.Lens
34−import Data.Schematic.Migration
34+import Data.Schematic.Migration
35−import Data.Schematic.Schema
35+import Data.Schematic.Schema
36−import Data.Schematic.Validation
36+import Data.Schematic.Validation
37−import Data.Singletons.Prelude hiding ((:.))
37+import Data.Singletons.Prelude hiding ((:.))
38−import Data.Text as T
39+import Data.Text as T
41parseAndValidateJson
42parseAndValidateJson
@@ -85,7 +86,8 @@ parseAndValidateWithMList
85 -> J.Value
86 -> J.Value
86 -> m (ParseResult (JsonRepr (Head revisions)))
87 -> m (ParseResult (JsonRepr (Head revisions)))
87parseAndValidateWithMList MNil v = pure $ parseAndValidateJson v
88parseAndValidateWithMList MNil v = pure $ parseAndValidateJson v
89+parseAndValidateWithMList (Tagged f :&& tl) v =
88−parseAndValidateWithMList ((:&&) p f tl) v = case parseAndValidateJsonBy p v of
90+ case parseAndValidateJsonBy Proxy v of
89 Valid a -> pure $ Valid a
91 Valid a -> pure $ Valid a
90 DecodingError _ -> do
92 DecodingError _ -> do
91 pr <- parseAndValidateWithMList tl v
93 pr <- parseAndValidateWithMList tl v