@@ -10,6 +10,11 @@ module Data.Schematic.Lens
10 , FSubset(..)
10 , FSubset(..)
13 , textRepr
18 , textRepr
14 , numberRepr
19 , numberRepr
15 , boolRepr
20 , boolRepr
@@ -23,6 +28,7 @@ import Data.Schematic.Schema
23import Data.Scientific
28import Data.Scientific
24import Data.Singletons
29import Data.Singletons
25import Data.Text
30import Data.Text
26import Data.Vector as V
32import Data.Vector as V
27import Data.Vinyl
33import Data.Vinyl
28import Data.Vinyl.Functor
34import Data.Vinyl.Functor
@@ -184,3 +190,26 @@ obj = iso (\(ReprObject r) -> r) ReprObject
185arr :: Iso' (JsonRepr ('SchemaArray cs schema)) (V.Vector (JsonRepr schema))
191arr :: Iso' (JsonRepr ('SchemaArray cs schema)) (V.Vector (JsonRepr schema))
186arr = iso (\(ReprArray r) -> r) ReprArray
192arr = iso (\(ReprArray r) -> r) ReprArray
196+ => Iso' (JsonRepr ('SchemaUnion (h ': tl))) (Union JsonRepr (h ': tl))
197+uni = iso (\(ReprUnion u) -> u) ReprUnion
201+ => Iso' (JsonRepr ('SchemaText cs)) Text
202+txt = iso (\(ReprText t) -> t) ReprText
206+ => Iso' (JsonRepr ('SchemaNumber cs)) Scientific
207+num = iso (\(ReprNumber t) -> t) ReprNumber
209+bln :: Iso' (JsonRepr 'SchemaBoolean) Bool
210+bln = iso (\(ReprBoolean b) -> b) ReprBoolean
214+ => Iso' (JsonRepr ('SchemaOptional schema)) (Maybe (JsonRepr schema))
215+opt = iso (\(ReprOptional o) -> o) ReprOptional