@@ -81,13 +81,13 @@ class SchemaConstructor jty where
81 constructor :: Proxy jty -> [CRepr jty] -> Schema
81 constructor :: Proxy jty -> [CRepr jty] -> Schema
83instance SchemaConstructor 'JText where
83instance SchemaConstructor 'JText where
84− constructor _ = Fix . SchemaText SJText
84+ constructor _ = Fix . SchemaText
86instance SchemaConstructor 'JNumber where
86instance SchemaConstructor 'JNumber where
87− constructor _ = Fix . SchemaNumber SJNumber
87+ constructor _ = Fix . SchemaNumber
89instance SchemaConstructor 'JObject where
89instance SchemaConstructor 'JObject where
90− constructor _ = Fix . SchemaObject SJObject
90+ constructor _ = Fix . SchemaObject
92class Schematic ty where
92class Schematic ty where
93 type JT (ty :: k) :: JType
93 type JT (ty :: k) :: JType
@@ -114,13 +114,16 @@ instance
114 build _ = constructor (Proxy @(JT (Field field ty cs)))
114 build _ = constructor (Proxy @(JT (Field field ty cs)))
115 $ schema (Proxy @(JT (Field field ty cs))) (Proxy @cs)
115 $ schema (Proxy @(JT (Field field ty cs))) (Proxy @cs)
117−data SObject els
117+data SObject typeName els
120+ ( Verifiable 'JObject els
121+ , KnownSymbol typeName )
119−instance (Verifiable 'JObject els) => Schematic (SObject els) where
122+ => Schematic (SObject typeName els) where
120− type JT (SObject els) = 'JObject
123+ type JT (SObject typeName els) = 'JObject
121 build _ =
124 build _ =
122− constructor (Proxy @(JT (SObject els)))
125+ constructor (Proxy @(JT (SObject typeName els)))
123− $ schema (Proxy @(JT (SObject els))) (Proxy @els)
126+ $ schema (Proxy @(JT (SObject typeName els))) (Proxy @els)
125data SArray cs s
128data SArray cs s
@@ -131,39 +134,9 @@ instance
131 type JT (SArray cs s) = 'JArray
134 type JT (SArray cs s) = 'JArray
132 build _ =
135 build _ =
133 Fix $ SchemaArray
136 Fix $ SchemaArray
135 (schema (Proxy @'JArray) (Proxy @cs))
137 (schema (Proxy @'JArray) (Proxy @cs))
136 (build (Proxy @s))
138 (build (Proxy @s))
138−data Generate name ty
141− ( Verifiable JText cs
142− , KnownSymbol name, Schematic ty )
143− => Schematic (Generate name (SText cs)) where
144− type JT (Generate name (SText cs)) = JT (SText cs)
145− build _ = build (Proxy @(SText cs))
148− ( Verifiable JNumber cs
149− , KnownSymbol name, Schematic ty )
150− => Schematic (Generate name (SNumber cs)) where
151− type JT (Generate name (SNumber cs)) = JT (SNumber cs)
152− build _ = build (Proxy @(SNumber cs))
155− ( Verifiable JArray cs
157− => Schematic (Generate name (SArray cs s)) where
158− type JT (Generate name (SArray cs s)) = JT (SArray cs s)
159− build _ = build (Proxy @(SArray cs s))
162− (Verifiable JObject els)
163− => Schematic (Generate name (SObject els)) where
164− type JT (Generate name (SObject els)) = JT (SObject els)
165− build _ = build (Proxy @(SObject els))
167-- | Shows it's top-level definition according to the json-schema
140-- | Shows it's top-level definition according to the json-schema
168class TopLevel spec
141class TopLevel spec