@@ -81,13 +81,13 @@ class SchemaConstructor jty where
8181 constructor :: Proxy jty -> [CRepr jty] -> Schema
8282
8383instance SchemaConstructor 'JText where
84− constructor _ = Fix . SchemaText SJText
84+ constructor _ = Fix . SchemaText
8585
8686instance SchemaConstructor 'JNumber where
87− constructor _ = Fix . SchemaNumber SJNumber
87+ constructor _ = Fix . SchemaNumber
8888
8989instance SchemaConstructor 'JObject where
90− constructor _ = Fix . SchemaObject SJObject
90+ constructor _ = Fix . SchemaObject
9191
9292class Schematic ty where
9393 type JT (ty :: k) :: JType
@@ -114,13 +114,16 @@ instance
114114 build _ = constructor (Proxy @(JT (Field field ty cs)))
115115 $ schema (Proxy @(JT (Field field ty cs))) (Proxy @cs)
116116
117−data SObject els
117+data SObject typeName els
118118
119−instance (Verifiable 'JObject els) => Schematic (SObject els) where
120− type JT (SObject els) = 'JObject
119+instance
120+ ( Verifiable 'JObject els
121+ , KnownSymbol typeName )
122+ => Schematic (SObject typeName els) where
123+ type JT (SObject typeName els) = 'JObject
121124 build _ =
122− constructor (Proxy @(JT (SObject els)))
123− $ schema (Proxy @(JT (SObject els))) (Proxy @els)
125+ constructor (Proxy @(JT (SObject typeName els)))
126+ $ schema (Proxy @(JT (SObject typeName els))) (Proxy @els)
124127
125128data SArray cs s
126129
@@ -131,39 +134,9 @@ instance
131134 type JT (SArray cs s) = 'JArray
132135 build _ =
133136 Fix $ SchemaArray
134− SJArray
135137 (schema (Proxy @'JArray) (Proxy @cs))
136138 (build (Proxy @s))
137139
138−data Generate name ty
139−
140−instance
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))
146−
147−instance
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))
153−
154−instance
155− ( Verifiable JArray cs
156− , Schematic s )
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))
160−
161−instance
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))
166−
167140-- | Shows it's top-level definition according to the json-schema
168141class TopLevel spec
169142