-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | RON-Schema -- -- Replicated Object Notation (RON), data types (RDT), and RON-Schema -- -- Examples: https://github.com/ff-notes/ron/tree/master/examples @package ron-schema @version 0.8 module RON.Schema data Alias stage Alias :: Text -> UseType stage -> Alias stage [$sel:name:Alias] :: Alias stage -> Text [$sel:target:Alias] :: Alias stage -> UseType stage data CaseTransform TitleCase :: CaseTransform data Declaration stage DAlias :: Alias stage -> Declaration stage DEnum :: TEnum -> Declaration stage DOpaque :: Opaque -> Declaration stage DStructLww :: StructLww stage -> Declaration stage DStructSet :: StructSet stage -> Declaration stage data Field (stage :: Stage) Field :: UseType stage -> FieldAnnotations -> XField stage -> Field [$sel:ronType:Field] :: Field -> UseType stage [$sel:annotations:Field] :: Field -> FieldAnnotations [$sel:ext:Field] :: Field -> XField stage type family XField (stage :: Stage) newtype FieldAnnotations FieldAnnotations :: Maybe MergeStrategy -> FieldAnnotations [$sel:mergeStrategy:FieldAnnotations] :: FieldAnnotations -> Maybe MergeStrategy defaultFieldAnnotations :: FieldAnnotations data MergeStrategy LWW :: MergeStrategy Max :: MergeStrategy Min :: MergeStrategy Set :: MergeStrategy data Opaque Opaque :: Bool -> Text -> OpaqueAnnotations -> Opaque [$sel:isObject:Opaque] :: Opaque -> Bool [$sel:name:Opaque] :: Opaque -> Text [$sel:annotations:Opaque] :: Opaque -> OpaqueAnnotations opaqueAtoms :: Text -> OpaqueAnnotations -> RonType opaqueAtoms_ :: Text -> RonType opaqueObject :: Text -> OpaqueAnnotations -> RonType newtype OpaqueAnnotations OpaqueAnnotations :: Maybe Text -> OpaqueAnnotations [$sel:haskellType:OpaqueAnnotations] :: OpaqueAnnotations -> Maybe Text defaultOpaqueAnnotations :: OpaqueAnnotations data RonType TAtom :: TAtom -> RonType TComposite :: TComposite -> RonType TObject :: TObject -> RonType TOpaque :: Opaque -> RonType type family Schema (stage :: Stage) data Stage Parsed :: Stage Resolved :: Stage Equipped :: Stage data Struct (encoding :: StructEncoding) stage Struct :: Text -> Map Text (Field stage) -> StructAnnotations -> Struct stage [$sel:name:Struct] :: Struct stage -> Text [$sel:fields:Struct] :: Struct stage -> Map Text (Field stage) [$sel:annotations:Struct] :: Struct stage -> StructAnnotations data StructAnnotations StructAnnotations :: Text -> Maybe CaseTransform -> StructAnnotations [$sel:haskellFieldPrefix:StructAnnotations] :: StructAnnotations -> Text [$sel:haskellFieldCaseTransform:StructAnnotations] :: StructAnnotations -> Maybe CaseTransform defaultStructAnnotations :: StructAnnotations data StructEncoding SELww :: StructEncoding SESet :: StructEncoding type StructLww = Struct SELww type StructSet = Struct SESet data TAtom TAFloat :: TAtom TAInteger :: TAtom TAString :: TAtom TAUuid :: TAtom -- | TODO(2019-08-04, cblp) do we need is as a group? newtype TComposite TEnum :: TEnum -> TComposite data TEnum Enum :: Text -> [Text] -> TEnum [$sel:name:Enum] :: TEnum -> Text [$sel:items:Enum] :: TEnum -> [Text] data TObject TORSet :: RonType -> TObject TORSetMap :: RonType -> RonType -> TObject TRga :: RonType -> TObject TStructLww :: StructLww Resolved -> TObject TStructSet :: StructSet Resolved -> TObject TVersionVector :: TObject data TypeExpr Use :: TypeName -> TypeExpr Apply :: TypeName -> [TypeExpr] -> TypeExpr type TypeName = Text type family UseType (stage :: Stage) instance GHC.Show.Show RON.Schema.TObject instance GHC.Show.Show RON.Schema.RonType instance GHC.Show.Show RON.Schema.FieldAnnotations instance GHC.Show.Show RON.Schema.MergeStrategy instance GHC.Show.Show RON.Schema.Opaque instance GHC.Show.Show RON.Schema.OpaqueAnnotations instance GHC.Show.Show RON.Schema.StructAnnotations instance GHC.Show.Show RON.Schema.CaseTransform instance GHC.Show.Show RON.Schema.TComposite instance GHC.Show.Show RON.Schema.TEnum instance GHC.Show.Show RON.Schema.TAtom instance GHC.Show.Show RON.Schema.TypeExpr instance (GHC.Show.Show (RON.Schema.UseType stage), GHC.Show.Show (RON.Schema.XField stage)) => GHC.Show.Show (RON.Schema.Struct encoding stage) instance (GHC.Show.Show (RON.Schema.UseType stage), GHC.Show.Show (RON.Schema.XField stage)) => GHC.Show.Show (RON.Schema.Field stage) instance (GHC.Show.Show (RON.Schema.UseType stage), GHC.Show.Show (RON.Schema.XField stage)) => GHC.Show.Show (RON.Schema.Declaration stage) instance GHC.Show.Show (RON.Schema.UseType stage) => GHC.Show.Show (RON.Schema.Alias stage) module RON.Schema.TH -- | QuasiQuoter to generate Haskell types from RON-Schema mkReplicated :: HasCallStack => QuasiQuoter -- | Generate Haskell types from RON-Schema mkReplicated' :: Schema 'Resolved -> DecsQ