-- 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.7 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 newtype Field stage Field :: UseType stage -> Field stage [$sel:ronType:Field] :: Field stage -> UseType stage data Opaque Opaque :: Bool -> Text -> OpaqueAnnotations -> Opaque [$sel:isObject:Opaque] :: Opaque -> Bool [$sel:name:Opaque] :: Opaque -> Text [$sel:annotations:Opaque] :: Opaque -> OpaqueAnnotations newtype OpaqueAnnotations OpaqueAnnotations :: Maybe Text -> OpaqueAnnotations [$sel:haskellType:OpaqueAnnotations] :: OpaqueAnnotations -> Maybe Text 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 data StructAnnotations StructAnnotations :: Text -> Maybe CaseTransform -> StructAnnotations [$sel:haskellFieldPrefix:StructAnnotations] :: StructAnnotations -> Text [$sel:haskellFieldCaseTransform:StructAnnotations] :: StructAnnotations -> Maybe CaseTransform data StructLww stage StructLww :: Text -> Map Text (Field stage) -> StructAnnotations -> StructLww stage [$sel:name:StructLww] :: StructLww stage -> Text [$sel:fields:StructLww] :: StructLww stage -> Map Text (Field stage) [$sel:annotations:StructLww] :: StructLww stage -> StructAnnotations data TAtom TAInteger :: TAtom TAString :: TAtom data TComposite TOption :: RonType -> 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 TVersionVector :: TObject data TypeExpr Use :: TypeName -> TypeExpr Apply :: TypeName -> [TypeExpr] -> TypeExpr type TypeName = Text type family UseType (stage :: Stage) defaultOpaqueAnnotations :: OpaqueAnnotations defaultStructAnnotations :: StructAnnotations opaqueAtoms :: Text -> OpaqueAnnotations -> RonType opaqueAtoms_ :: Text -> RonType opaqueObject :: Text -> OpaqueAnnotations -> RonType instance GHC.Show.Show RON.Schema.TComposite instance GHC.Show.Show RON.Schema.TObject instance GHC.Show.Show RON.Schema.RonType 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.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.StructLww stage) instance GHC.Show.Show (RON.Schema.UseType stage) => GHC.Show.Show (RON.Schema.Field stage) instance GHC.Show.Show (RON.Schema.UseType 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