@@ -5,26 +5,25 @@
6module Data.Schematic.Schema where
6module Data.Schematic.Schema where
8−import Control.Applicative
8+import Control.Applicative ()
9−import Control.Monad
9+import Control.Monad
10−import Data.Aeson as J
10+import Data.Aeson as J
11−import Data.Aeson.Types as J
11+import Data.Aeson.Types as J
12−import Data.HashMap.Strict as H
12+import Data.HashMap.Strict as H
13−import Data.Kind
13+import Data.Kind
14−import Data.Maybe
14+import Data.Maybe
15−import Data.Schematic.Instances ()
15+import Data.Schematic.Instances ()
17−import Data.Scientific
16+import Data.Scientific
18−import Data.Singletons.Prelude.List hiding (All)
17+import Data.Singletons.Prelude.List hiding (All)
19−import Data.Singletons.TH
18+import Data.Singletons.TH
20−import Data.Singletons.TypeLits
19+import Data.Singletons.TypeLits
21−import Data.Text as T
20+import Data.Text as T
22−import Data.Vector as V
21+import Data.Vector as V
23−import Data.Vinyl hiding (Dict)
22+import Data.Vinyl hiding (Dict)
24−import Data.Vinyl.TypeLevel hiding (Nat)
23+import qualified Data.Vinyl.TypeLevel as V
25−import GHC.Generics (Generic)
24+import GHC.Generics (Generic)
26−import Prelude as P
25+import Prelude as P
27−import Test.SmallCheck.Series
26+import Test.SmallCheck.Series
30type family All (c :: k -> Constraint) (s :: [k]) :: Constraint where
29type family All (c :: k -> Constraint) (s :: [k]) :: Constraint where
@@ -137,6 +136,10 @@ data FieldRepr :: (Symbol, Schema) -> Type where
137 => JsonRepr schema
136 => JsonRepr schema
138 -> FieldRepr '(name, schema)
137 -> FieldRepr '(name, schema)
139+-- | Forgetful Functor Ufr
140+toJsonRepr :: FieldRepr '(fn, sch) -> JsonRepr sch
141+toJsonRepr (FieldRepr x) = x
140knownFieldName
143knownFieldName
141 :: forall proxy (fieldName :: Symbol) schema
144 :: forall proxy (fieldName :: Symbol) schema
142 . KnownSymbol fieldName
145 . KnownSymbol fieldName
@@ -182,7 +185,7 @@ instance Show (JsonRepr 'SchemaNull) where show _ = "ReprNull"
182instance Show (JsonRepr s) => Show (JsonRepr ('SchemaArray acs s)) where
185instance Show (JsonRepr s) => Show (JsonRepr ('SchemaArray acs s)) where
183 show (ReprArray v) = "ReprArray " P.++ show v
186 show (ReprArray v) = "ReprArray " P.++ show v
185−instance RecAll FieldRepr fs Show => Show (JsonRepr ('SchemaObject fs)) where
188+instance V.RecAll FieldRepr fs Show => Show (JsonRepr ('SchemaObject fs)) where
186 show (ReprObject fs) = "ReprObject " P.++ show fs
189 show (ReprObject fs) = "ReprObject " P.++ show fs
188instance Show (JsonRepr s) => Show (JsonRepr ('SchemaOptional s)) where
191instance Show (JsonRepr s) => Show (JsonRepr ('SchemaOptional s)) where