| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Codec.CBOR.Cuddle.Huddle.HuddleM
Description
Monad for declaring Huddle constructs
Synopsis
- text :: Text -> Literal
- (==>) :: (IsType0 a, IsEntryLike me) => Key -> a -> me
- sized :: forall c a s. (IsSizeable a, IsSize s, IsConstrainable c a) => c -> s -> Constrained
- data Value a where
- bool :: Bool -> Literal
- int :: Integer -> Literal
- arr :: ArrayChoice -> ArrayChoice
- (/) :: (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c
- a :: (IsType0 a, IsGroupOrArrayEntry e) => a -> e
- (...) :: (IsRangeBound a, IsRangeBound b) => a -> b -> Ranged
- class HasName a where
- le :: (IsComparable a, IsConstrainable c a) => c -> Word64 -> Constrained
- data Group
- data Rule = Rule {
- ruleDefinition :: Named Type0
- ruleExtra :: XRule HuddleStage
- data family XCddl i
- data family XTerm i
- data family XRule i
- data family XXTopLevel i
- data family XXType2 i
- data Huddle
- data HuddleItem
- huddleAugment :: Huddle -> Huddle -> Huddle
- data GroupDef = GroupDef {
- gdNamed :: Named Group
- gdExt :: XRule HuddleStage
- class IsType0 a where
- toType0 :: a -> Type0
- data HuddleStage
- comment :: HasComment a => Comment -> a -> a
- mp :: MapChoice -> MapChoice
- asKey :: IsType0 r => r -> Key
- idx :: Word64 -> Key
- grp :: Group -> Group
- class CanQuantify a where
- opt :: CanQuantify a => a -> a
- seal :: a -> Seal a
- sarr :: ArrayChoice -> Seal Array
- smp :: MapChoice -> Seal Map
- data Literal
- bstr :: ByteString -> Literal
- class IsConstrainable a x | a -> x
- class IsSizeable (a :: k)
- cbor :: (IsCborable b, IsConstrainable c b) => c -> Rule -> Constrained
- tag :: Word64 -> a -> Tagged a
- data GRef
- data GRuleDef = GRuleDef {
- grdBody :: Named (GRule GRef)
- grdExtra :: XRule HuddleStage
- data GRuleCall = GRuleCall {
- grcBody :: Named (GRule Type2)
- grcExtra :: XRule HuddleStage
- binding2 :: (IsType0 t0, IsType0 t1) => (GRef -> GRef -> Rule) -> t0 -> t1 -> GRuleCall
- callToDef :: GRule Type2 -> GRule GRef
- withGenerator :: HasGenerator a => (forall g (m :: Type -> Type). StatefulGen g m => g -> m WrappedTerm) -> a -> a
- collectFrom :: [HuddleItem] -> Huddle
- collectFromInit :: [HuddleItem] -> Huddle
- toCDDL :: Huddle -> CDDL HuddleStage
- toCDDLNoRoot :: Huddle -> CDDL HuddleStage
- (=:=) :: IsType0 a => Name -> a -> HuddleM Rule
- (=:~) :: Name -> Group -> HuddleM GroupDef
- (=::=) :: IsType0 a => Name -> a -> Rule
- binding :: IsType0 t0 => (GRef -> Rule) -> HuddleM (t0 -> GRuleCall)
- setRootRules :: [Rule] -> HuddleM ()
- huddleDef :: HuddleM a -> Huddle
- huddleDef' :: HuddleM a -> (a, Huddle)
- include :: Includable a => a -> HuddleM a
- unsafeIncludeFromHuddle :: Huddle -> Name -> HuddleM HuddleItem
Documentation
sized :: forall c a s. (IsSizeable a, IsSize s, IsConstrainable c a) => c -> s -> Constrained Source #
Declare a size constraint on an int-style type or reference. Since 0.3.4 this has worked for reference types as well as values.
Type-parametrised value type handling CBOR primitives. This is used to constrain the set of constraints which can apply to a given postlude type.
Constructors
| VBool :: Value Bool | |
| VUInt :: Value Int | |
| VNInt :: Value Int | |
| VInt :: Value Int | |
| VHalf :: Value Float | |
| VFloat :: Value Float | |
| VDouble :: Value Double | |
| VBytes :: Value ByteString | |
| VText :: Value Text | |
| VAny :: Value Void | |
| VNil :: Value Void |
Instances
| Show (Value a) Source # | |
| IsType0 (Value a) Source # | |
Defined in Codec.CBOR.Cuddle.Huddle | |
| IsConstrainable (Value a) a Source # | |
Defined in Codec.CBOR.Cuddle.Huddle Methods toConstrainable :: Value a -> Constrainable a | |
arr :: ArrayChoice -> ArrayChoice Source #
This function is used solely to resolve type inference by explicitly identifying something as an array.
(/) :: (IsChoosable a c, IsChoosable b c) => a -> b -> Choice c infixl 9 Source #
Allow choices between constructions
in CDDL, / a choice between types (concretely, between Type1 values, to
make a Type0). // allows choice between groups. We can illustrate the
difference with the following snippet:
foo = [ 0 1, uint 2 3, tstr ]
This construction would match either of the following:
[0, 3] [2, "Hello World"]
In other words, the // binds less strongly than comma (',') in CDDL.
In Haskell, of course, we cannot have syntax inside an array which binds
stronger than the comma. so we have to do things a little differently. The
way this is handled at the moment is that / has special treatment for
arrays/groups, where it will, instead of creating a type-level choice, merge
the two arraysgroupsmaps into a single one containing a group choice.
If one instead wants the behaviour corresponding to the CDDL / for arrays,
maps or groups, one can "seal" the array or group using the seal, sarr or
smp functions. For example:
"foo" =:= sarr [0, a VUInt] / sarr [1, a VText]
Generates a choice (at the Type0) level between two arrays, whereas
"foo" =:= arr [0, a VUInt] / arr [1, a VUInt]
will generate a single array containing a group choice between two groups.
As such, there is no // operator in Huddle.
a :: (IsType0 a, IsGroupOrArrayEntry e) => a -> e Source #
Explicitly cast an item in an Array as an ArrayEntry.
(...) :: (IsRangeBound a, IsRangeBound b) => a -> b -> Ranged infixl 9 Source #
Establish a closed range bound.
le :: (IsComparable a, IsConstrainable c a) => c -> Word64 -> Constrained Source #
Constructors
| Rule | |
Fields
| |
Instances
| Generic Rule Source # | |
| HasName Rule Source # | |
| HasGenerator Rule Source # | |
Defined in Codec.CBOR.Cuddle.Huddle Methods generatorL :: Lens' Rule (Maybe CBORGenerator) Source # | |
| HasComment Rule Source # | |
| IsType0 Rule Source # | |
Defined in Codec.CBOR.Cuddle.Huddle | |
| type Rep Rule Source # | |
Defined in Codec.CBOR.Cuddle.Huddle | |
Instances
Instances
| IndexMappable XTerm HuddleStage CTreePhase Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XTerm HuddleStage -> XTerm CTreePhase Source # | |||||
| IndexMappable XTerm HuddleStage PrettyStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XTerm HuddleStage -> XTerm PrettyStage Source # | |||||
| IndexMappable XTerm ParserStage CTreePhase Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XTerm ParserStage -> XTerm CTreePhase Source # | |||||
| IndexMappable XTerm ParserStage HuddleStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XTerm ParserStage -> XTerm HuddleStage Source # | |||||
| IndexMappable XTerm ParserStage ParserStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XTerm ParserStage -> XTerm ParserStage Source # | |||||
| IndexMappable XTerm ParserStage PrettyStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XTerm ParserStage -> XTerm PrettyStage Source # | |||||
| IsString (XTerm PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty Methods fromString :: String -> XTerm PrettyStage # | |||||
| Monoid (XTerm HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods mempty :: XTerm HuddleStage # mappend :: XTerm HuddleStage -> XTerm HuddleStage -> XTerm HuddleStage # mconcat :: [XTerm HuddleStage] -> XTerm HuddleStage # | |||||
| Monoid (XTerm ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser Methods mempty :: XTerm ParserStage # mappend :: XTerm ParserStage -> XTerm ParserStage -> XTerm ParserStage # mconcat :: [XTerm ParserStage] -> XTerm ParserStage # | |||||
| Monoid (XTerm PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty Methods mempty :: XTerm PrettyStage # mappend :: XTerm PrettyStage -> XTerm PrettyStage -> XTerm PrettyStage # mconcat :: [XTerm PrettyStage] -> XTerm PrettyStage # | |||||
| Semigroup (XTerm HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods (<>) :: XTerm HuddleStage -> XTerm HuddleStage -> XTerm HuddleStage # sconcat :: NonEmpty (XTerm HuddleStage) -> XTerm HuddleStage # stimes :: Integral b => b -> XTerm HuddleStage -> XTerm HuddleStage # | |||||
| Semigroup (XTerm ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser Methods (<>) :: XTerm ParserStage -> XTerm ParserStage -> XTerm ParserStage # sconcat :: NonEmpty (XTerm ParserStage) -> XTerm ParserStage # stimes :: Integral b => b -> XTerm ParserStage -> XTerm ParserStage # | |||||
| Semigroup (XTerm PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty Methods (<>) :: XTerm PrettyStage -> XTerm PrettyStage -> XTerm PrettyStage # sconcat :: NonEmpty (XTerm PrettyStage) -> XTerm PrettyStage # stimes :: Integral b => b -> XTerm PrettyStage -> XTerm PrettyStage # | |||||
| Generic (XTerm CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree Associated Types
Methods from :: XTerm CTreePhase -> Rep (XTerm CTreePhase) x # to :: Rep (XTerm CTreePhase) x -> XTerm CTreePhase # | |||||
| Generic (XTerm HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Associated Types
Methods from :: XTerm HuddleStage -> Rep (XTerm HuddleStage) x # to :: Rep (XTerm HuddleStage) x -> XTerm HuddleStage # | |||||
| Generic (XTerm ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser Associated Types
Methods from :: XTerm ParserStage -> Rep (XTerm ParserStage) x # to :: Rep (XTerm ParserStage) x -> XTerm ParserStage # | |||||
| Generic (XTerm PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty Associated Types
Methods from :: XTerm PrettyStage -> Rep (XTerm PrettyStage) x # to :: Rep (XTerm PrettyStage) x -> XTerm PrettyStage # | |||||
| Show (XTerm ValidatorStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.CBOR.Validator | |||||
| Show (XTerm CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree | |||||
| Show (XTerm HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
| Show (XTerm ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser | |||||
| Show (XTerm PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty | |||||
| CollectComments (XTerm PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty Methods collectComments :: XTerm PrettyStage -> [Comment] Source # | |||||
| HasComment (XTerm ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser | |||||
| HasComment (XTerm PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty | |||||
| Default (XTerm CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree Methods def :: XTerm CTreePhase # | |||||
| Eq (XTerm CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree Methods (==) :: XTerm CTreePhase -> XTerm CTreePhase -> Bool # (/=) :: XTerm CTreePhase -> XTerm CTreePhase -> Bool # | |||||
| Eq (XTerm HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods (==) :: XTerm HuddleStage -> XTerm HuddleStage -> Bool # (/=) :: XTerm HuddleStage -> XTerm HuddleStage -> Bool # | |||||
| Eq (XTerm ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser Methods (==) :: XTerm ParserStage -> XTerm ParserStage -> Bool # (/=) :: XTerm ParserStage -> XTerm ParserStage -> Bool # | |||||
| Eq (XTerm PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty Methods (==) :: XTerm PrettyStage -> XTerm PrettyStage -> Bool # (/=) :: XTerm PrettyStage -> XTerm PrettyStage -> Bool # | |||||
| Ord (XTerm CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree Methods compare :: XTerm CTreePhase -> XTerm CTreePhase -> Ordering # (<) :: XTerm CTreePhase -> XTerm CTreePhase -> Bool # (<=) :: XTerm CTreePhase -> XTerm CTreePhase -> Bool # (>) :: XTerm CTreePhase -> XTerm CTreePhase -> Bool # (>=) :: XTerm CTreePhase -> XTerm CTreePhase -> Bool # max :: XTerm CTreePhase -> XTerm CTreePhase -> XTerm CTreePhase # min :: XTerm CTreePhase -> XTerm CTreePhase -> XTerm CTreePhase # | |||||
| Hashable (XTerm CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree | |||||
| ToExpr (XTerm ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser | |||||
| ToExpr (XTerm PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty | |||||
| data XTerm ValidatorStage Source # | |||||
Defined in Codec.CBOR.Cuddle.CBOR.Validator | |||||
| data XTerm CTreePhase Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree | |||||
| newtype XTerm HuddleStage Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
| newtype XTerm ParserStage Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser | |||||
| newtype XTerm PrettyStage Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty | |||||
| type Rep (XTerm CTreePhase) Source # | |||||
| type Rep (XTerm HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle type Rep (XTerm HuddleStage) = D1 ('MetaData "XTerm" "Codec.CBOR.Cuddle.Huddle" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "HuddleXTerm" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Comment))) | |||||
| type Rep (XTerm ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser type Rep (XTerm ParserStage) = D1 ('MetaData "XTerm" "Codec.CBOR.Cuddle.Parser" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "ParserXTerm" 'PrefixI 'True) (S1 ('MetaSel ('Just "unParserXTerm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Comment))) | |||||
| type Rep (XTerm PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty type Rep (XTerm PrettyStage) = D1 ('MetaData "XTerm" "Codec.CBOR.Cuddle.Pretty" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "PrettyXTerm" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPrettyXTerm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Comment))) | |||||
Instances
| IndexMappable XRule HuddleStage CTreePhase Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XRule HuddleStage -> XRule CTreePhase Source # | |||||
| IndexMappable XRule HuddleStage PrettyStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XRule HuddleStage -> XRule PrettyStage Source # | |||||
| IndexMappable XRule ParserStage CTreePhase Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XRule ParserStage -> XRule CTreePhase Source # | |||||
| IndexMappable XRule ParserStage ParserStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XRule ParserStage -> XRule ParserStage Source # | |||||
| IndexMappable XRule ParserStage PrettyStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XRule ParserStage -> XRule PrettyStage Source # | |||||
| Monoid (XRule ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser Methods mempty :: XRule ParserStage # mappend :: XRule ParserStage -> XRule ParserStage -> XRule ParserStage # mconcat :: [XRule ParserStage] -> XRule ParserStage # | |||||
| Semigroup (XRule ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser Methods (<>) :: XRule ParserStage -> XRule ParserStage -> XRule ParserStage # sconcat :: NonEmpty (XRule ParserStage) -> XRule ParserStage # stimes :: Integral b => b -> XRule ParserStage -> XRule ParserStage # | |||||
| Generic (XRule CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree Associated Types
Methods from :: XRule CTreePhase -> Rep (XRule CTreePhase) x # to :: Rep (XRule CTreePhase) x -> XRule CTreePhase # | |||||
| Generic (XRule HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Associated Types
Methods from :: XRule HuddleStage -> Rep (XRule HuddleStage) x # to :: Rep (XRule HuddleStage) x -> XRule HuddleStage # | |||||
| Generic (XRule ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser Associated Types
Methods from :: XRule ParserStage -> Rep (XRule ParserStage) x # to :: Rep (XRule ParserStage) x -> XRule ParserStage # | |||||
| Generic (XRule PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty Associated Types
Methods from :: XRule PrettyStage -> Rep (XRule PrettyStage) x # to :: Rep (XRule PrettyStage) x -> XRule PrettyStage # | |||||
| Show (XRule ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser | |||||
| Show (XRule PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty | |||||
| CollectComments (XRule PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty Methods collectComments :: XRule PrettyStage -> [Comment] Source # | |||||
| HasComment (XRule HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
| HasComment (XRule ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser | |||||
| HasComment (XRule PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty | |||||
| Default (XRule HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods def :: XRule HuddleStage # | |||||
| Default (XRule PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty Methods def :: XRule PrettyStage # | |||||
| Eq (XRule ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser Methods (==) :: XRule ParserStage -> XRule ParserStage -> Bool # (/=) :: XRule ParserStage -> XRule ParserStage -> Bool # | |||||
| Eq (XRule PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty Methods (==) :: XRule PrettyStage -> XRule PrettyStage -> Bool # (/=) :: XRule PrettyStage -> XRule PrettyStage -> Bool # | |||||
| ToExpr (XRule ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser | |||||
| ToExpr (XRule PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty | |||||
| newtype XRule CTreePhase Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree | |||||
| data XRule HuddleStage Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
| newtype XRule ParserStage Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser | |||||
| newtype XRule PrettyStage Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty | |||||
| type Rep (XRule CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree type Rep (XRule CTreePhase) = D1 ('MetaData "XRule" "Codec.CBOR.Cuddle.CDDL.CTree" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "CTreeXRule" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe CBORGenerator)))) | |||||
| type Rep (XRule HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle type Rep (XRule HuddleStage) = D1 ('MetaData "XRule" "Codec.CBOR.Cuddle.Huddle" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'False) (C1 ('MetaCons "HuddleXRule" 'PrefixI 'True) (S1 ('MetaSel ('Just "hxrComment") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Comment) :*: S1 ('MetaSel ('Just "hxrGenerator") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe CBORGenerator)))) | |||||
| type Rep (XRule ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser type Rep (XRule ParserStage) = D1 ('MetaData "XRule" "Codec.CBOR.Cuddle.Parser" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "ParserXRule" 'PrefixI 'True) (S1 ('MetaSel ('Just "unParserXRule") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Comment))) | |||||
| type Rep (XRule PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty type Rep (XRule PrettyStage) = D1 ('MetaData "XRule" "Codec.CBOR.Cuddle.Pretty" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "PrettyXRule" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPrettyXRule") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Comment))) | |||||
data family XXTopLevel i Source #
Instances
| IndexMappable XXTopLevel HuddleStage PrettyStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XXTopLevel HuddleStage -> XXTopLevel PrettyStage Source # | |||||
| IndexMappable XXTopLevel ParserStage HuddleStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XXTopLevel ParserStage -> XXTopLevel HuddleStage Source # | |||||
| IndexMappable XXTopLevel ParserStage ParserStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XXTopLevel ParserStage -> XXTopLevel ParserStage Source # | |||||
| IndexMappable XXTopLevel ParserStage PrettyStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XXTopLevel ParserStage -> XXTopLevel PrettyStage Source # | |||||
| Monoid (XXTopLevel HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods mempty :: XXTopLevel HuddleStage # mappend :: XXTopLevel HuddleStage -> XXTopLevel HuddleStage -> XXTopLevel HuddleStage # mconcat :: [XXTopLevel HuddleStage] -> XXTopLevel HuddleStage # | |||||
| Semigroup (XXTopLevel HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods (<>) :: XXTopLevel HuddleStage -> XXTopLevel HuddleStage -> XXTopLevel HuddleStage # sconcat :: NonEmpty (XXTopLevel HuddleStage) -> XXTopLevel HuddleStage # stimes :: Integral b => b -> XXTopLevel HuddleStage -> XXTopLevel HuddleStage # | |||||
| Generic (XXTopLevel CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree Associated Types
Methods from :: XXTopLevel CTreePhase -> Rep (XXTopLevel CTreePhase) x # to :: Rep (XXTopLevel CTreePhase) x -> XXTopLevel CTreePhase # | |||||
| Generic (XXTopLevel HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Associated Types
Methods from :: XXTopLevel HuddleStage -> Rep (XXTopLevel HuddleStage) x # to :: Rep (XXTopLevel HuddleStage) x -> XXTopLevel HuddleStage # | |||||
| Generic (XXTopLevel ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser Associated Types
Methods from :: XXTopLevel ParserStage -> Rep (XXTopLevel ParserStage) x # to :: Rep (XXTopLevel ParserStage) x -> XXTopLevel ParserStage # | |||||
| Generic (XXTopLevel PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty Associated Types
Methods from :: XXTopLevel PrettyStage -> Rep (XXTopLevel PrettyStage) x # to :: Rep (XXTopLevel PrettyStage) x -> XXTopLevel PrettyStage # | |||||
| Show (XXTopLevel CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree Methods showsPrec :: Int -> XXTopLevel CTreePhase -> ShowS # show :: XXTopLevel CTreePhase -> String # showList :: [XXTopLevel CTreePhase] -> ShowS # | |||||
| Show (XXTopLevel HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods showsPrec :: Int -> XXTopLevel HuddleStage -> ShowS # show :: XXTopLevel HuddleStage -> String # showList :: [XXTopLevel HuddleStage] -> ShowS # | |||||
| Show (XXTopLevel ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser Methods showsPrec :: Int -> XXTopLevel ParserStage -> ShowS # show :: XXTopLevel ParserStage -> String # showList :: [XXTopLevel ParserStage] -> ShowS # | |||||
| Show (XXTopLevel PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty Methods showsPrec :: Int -> XXTopLevel PrettyStage -> ShowS # show :: XXTopLevel PrettyStage -> String # showList :: [XXTopLevel PrettyStage] -> ShowS # | |||||
| CollectComments (XXTopLevel PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty Methods collectComments :: XXTopLevel PrettyStage -> [Comment] Source # | |||||
| Eq (XXTopLevel CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree Methods (==) :: XXTopLevel CTreePhase -> XXTopLevel CTreePhase -> Bool # (/=) :: XXTopLevel CTreePhase -> XXTopLevel CTreePhase -> Bool # | |||||
| Eq (XXTopLevel HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods (==) :: XXTopLevel HuddleStage -> XXTopLevel HuddleStage -> Bool # (/=) :: XXTopLevel HuddleStage -> XXTopLevel HuddleStage -> Bool # | |||||
| Eq (XXTopLevel ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser Methods (==) :: XXTopLevel ParserStage -> XXTopLevel ParserStage -> Bool # (/=) :: XXTopLevel ParserStage -> XXTopLevel ParserStage -> Bool # | |||||
| Eq (XXTopLevel PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty Methods (==) :: XXTopLevel PrettyStage -> XXTopLevel PrettyStage -> Bool # (/=) :: XXTopLevel PrettyStage -> XXTopLevel PrettyStage -> Bool # | |||||
| Ord (XXTopLevel CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree Methods compare :: XXTopLevel CTreePhase -> XXTopLevel CTreePhase -> Ordering # (<) :: XXTopLevel CTreePhase -> XXTopLevel CTreePhase -> Bool # (<=) :: XXTopLevel CTreePhase -> XXTopLevel CTreePhase -> Bool # (>) :: XXTopLevel CTreePhase -> XXTopLevel CTreePhase -> Bool # (>=) :: XXTopLevel CTreePhase -> XXTopLevel CTreePhase -> Bool # max :: XXTopLevel CTreePhase -> XXTopLevel CTreePhase -> XXTopLevel CTreePhase # min :: XXTopLevel CTreePhase -> XXTopLevel CTreePhase -> XXTopLevel CTreePhase # | |||||
| ToExpr (XXTopLevel ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser | |||||
| ToExpr (XXTopLevel PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty | |||||
| newtype XXTopLevel CTreePhase Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree | |||||
| newtype XXTopLevel HuddleStage Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
| newtype XXTopLevel ParserStage Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser | |||||
| newtype XXTopLevel PrettyStage Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty | |||||
| type Rep (XXTopLevel CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree type Rep (XXTopLevel CTreePhase) = D1 ('MetaData "XXTopLevel" "Codec.CBOR.Cuddle.CDDL.CTree" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "CTreeXXTopLevel" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Void))) | |||||
| type Rep (XXTopLevel HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle type Rep (XXTopLevel HuddleStage) = D1 ('MetaData "XXTopLevel" "Codec.CBOR.Cuddle.Huddle" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "HuddleXXTopLevel" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Comment))) | |||||
| type Rep (XXTopLevel ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser type Rep (XXTopLevel ParserStage) = D1 ('MetaData "XXTopLevel" "Codec.CBOR.Cuddle.Parser" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "ParserXXTopLevel" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Comment))) | |||||
| type Rep (XXTopLevel PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty type Rep (XXTopLevel PrettyStage) = D1 ('MetaData "XXTopLevel" "Codec.CBOR.Cuddle.Pretty" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "PrettyXXTopLevel" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Comment))) | |||||
data family XXType2 i Source #
Instances
| IndexMappable XXType2 HuddleStage CTreePhase Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XXType2 HuddleStage -> XXType2 CTreePhase Source # | |||||
| IndexMappable XXType2 HuddleStage PrettyStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XXType2 HuddleStage -> XXType2 PrettyStage Source # | |||||
| IndexMappable XXType2 ParserStage CTreePhase Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XXType2 ParserStage -> XXType2 CTreePhase Source # | |||||
| IndexMappable XXType2 ParserStage HuddleStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XXType2 ParserStage -> XXType2 HuddleStage Source # | |||||
| IndexMappable XXType2 ParserStage ParserStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XXType2 ParserStage -> XXType2 ParserStage Source # | |||||
| IndexMappable XXType2 ParserStage PrettyStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XXType2 ParserStage -> XXType2 PrettyStage Source # | |||||
| Semigroup (XXType2 HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods (<>) :: XXType2 HuddleStage -> XXType2 HuddleStage -> XXType2 HuddleStage # sconcat :: NonEmpty (XXType2 HuddleStage) -> XXType2 HuddleStage # stimes :: Integral b => b -> XXType2 HuddleStage -> XXType2 HuddleStage # | |||||
| Generic (XXType2 CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree Associated Types
Methods from :: XXType2 CTreePhase -> Rep (XXType2 CTreePhase) x # to :: Rep (XXType2 CTreePhase) x -> XXType2 CTreePhase # | |||||
| Generic (XXType2 HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Associated Types
Methods from :: XXType2 HuddleStage -> Rep (XXType2 HuddleStage) x # to :: Rep (XXType2 HuddleStage) x -> XXType2 HuddleStage # | |||||
| Generic (XXType2 ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser Associated Types
Methods from :: XXType2 ParserStage -> Rep (XXType2 ParserStage) x # to :: Rep (XXType2 ParserStage) x -> XXType2 ParserStage # | |||||
| Generic (XXType2 PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty Associated Types
Methods from :: XXType2 PrettyStage -> Rep (XXType2 PrettyStage) x # to :: Rep (XXType2 PrettyStage) x -> XXType2 PrettyStage # | |||||
| Show (XXType2 CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree | |||||
| Show (XXType2 HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
| Show (XXType2 ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser | |||||
| Show (XXType2 PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty | |||||
| CollectComments (XXType2 PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty Methods collectComments :: XXType2 PrettyStage -> [Comment] Source # | |||||
| Eq (XXType2 CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree Methods (==) :: XXType2 CTreePhase -> XXType2 CTreePhase -> Bool # (/=) :: XXType2 CTreePhase -> XXType2 CTreePhase -> Bool # | |||||
| Eq (XXType2 HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods (==) :: XXType2 HuddleStage -> XXType2 HuddleStage -> Bool # (/=) :: XXType2 HuddleStage -> XXType2 HuddleStage -> Bool # | |||||
| Eq (XXType2 ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser Methods (==) :: XXType2 ParserStage -> XXType2 ParserStage -> Bool # (/=) :: XXType2 ParserStage -> XXType2 ParserStage -> Bool # | |||||
| Eq (XXType2 PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty Methods (==) :: XXType2 PrettyStage -> XXType2 PrettyStage -> Bool # (/=) :: XXType2 PrettyStage -> XXType2 PrettyStage -> Bool # | |||||
| Ord (XXType2 CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree Methods compare :: XXType2 CTreePhase -> XXType2 CTreePhase -> Ordering # (<) :: XXType2 CTreePhase -> XXType2 CTreePhase -> Bool # (<=) :: XXType2 CTreePhase -> XXType2 CTreePhase -> Bool # (>) :: XXType2 CTreePhase -> XXType2 CTreePhase -> Bool # (>=) :: XXType2 CTreePhase -> XXType2 CTreePhase -> Bool # max :: XXType2 CTreePhase -> XXType2 CTreePhase -> XXType2 CTreePhase # min :: XXType2 CTreePhase -> XXType2 CTreePhase -> XXType2 CTreePhase # | |||||
| Hashable (XXType2 CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree | |||||
| ToExpr (XXType2 ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser | |||||
| ToExpr (XXType2 PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty | |||||
| newtype XXType2 CTreePhase Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree | |||||
| newtype XXType2 HuddleStage Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
| newtype XXType2 ParserStage Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser | |||||
| newtype XXType2 PrettyStage Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty | |||||
| type Rep (XXType2 CTreePhase) Source # | |||||
Defined in Codec.CBOR.Cuddle.CDDL.CTree type Rep (XXType2 CTreePhase) = D1 ('MetaData "XXType2" "Codec.CBOR.Cuddle.CDDL.CTree" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "CTreeXXType2" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Void))) | |||||
| type Rep (XXType2 HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle type Rep (XXType2 HuddleStage) = D1 ('MetaData "XXType2" "Codec.CBOR.Cuddle.Huddle" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "HuddleXXType2" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Void))) | |||||
| type Rep (XXType2 ParserStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Parser type Rep (XXType2 ParserStage) = D1 ('MetaData "XXType2" "Codec.CBOR.Cuddle.Parser" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "ParserXXType2" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Void))) | |||||
| type Rep (XXType2 PrettyStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Pretty type Rep (XXType2 PrettyStage) = D1 ('MetaData "XXType2" "Codec.CBOR.Cuddle.Pretty" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "PrettyXXType2" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Void))) | |||||
Top-level Huddle type is a list of rules.
Instances
| Semigroup Huddle Source # | This semigroup instance: - Takes takes the roots from the RHS unless they are empty, in which case it takes the roots from the LHS - Uses the RHS to override items on the LHS where they share a name. The value from the RHS is taken, but the index from the LHS is used. Note that this allows replacing items in the middle of a tree without updating higher-level items which make use of them - that is, we do not need to "close over" higher-level terms, since by the time they have been built into a huddle structure, the references have been converted to keys. | ||||
| Generic Huddle Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Associated Types
| |||||
| IsList Huddle Source # | This instance is mostly used for testing | ||||
| Default Huddle Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
| type Rep Huddle Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle type Rep Huddle = D1 ('MetaData "Huddle" "Codec.CBOR.Cuddle.Huddle" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'False) (C1 ('MetaCons "Huddle" 'PrefixI 'True) (S1 ('MetaSel ('Just "roots") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Rule]) :*: S1 ('MetaSel ('Just "items") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OMap Name HuddleItem)))) | |||||
| type Item Huddle Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
data HuddleItem Source #
Instances
| Generic HuddleItem Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Associated Types
| |||||
| HasName HuddleItem Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods getName :: HuddleItem -> Name Source # | |||||
| IsType0 HuddleItem Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods toType0 :: HuddleItem -> Type0 Source # | |||||
| type Rep HuddleItem Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle type Rep HuddleItem = D1 ('MetaData "HuddleItem" "Codec.CBOR.Cuddle.Huddle" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'False) (C1 ('MetaCons "HIRule" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rule)) :+: (C1 ('MetaCons "HIGRule" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 GRuleDef)) :+: C1 ('MetaCons "HIGroup" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 GroupDef)))) | |||||
class IsType0 a where Source #
Instances
| IsType0 ByteString Source # | |
Defined in Codec.CBOR.Cuddle.Huddle Methods toType0 :: ByteString -> Type0 Source # | |
| IsType0 GRef Source # | |
Defined in Codec.CBOR.Cuddle.Huddle | |
| IsType0 GRuleCall Source # | |
Defined in Codec.CBOR.Cuddle.Huddle | |
| IsType0 GroupDef Source # | |
Defined in Codec.CBOR.Cuddle.Huddle | |
| IsType0 HuddleItem Source # | |
Defined in Codec.CBOR.Cuddle.Huddle Methods toType0 :: HuddleItem -> Type0 Source # | |
| IsType0 Literal Source # | |
Defined in Codec.CBOR.Cuddle.Huddle | |
| IsType0 Rule Source # | |
Defined in Codec.CBOR.Cuddle.Huddle | |
| IsType0 Text Source # | |
Defined in Codec.CBOR.Cuddle.Huddle | |
| IsType0 Integer Source # | |
Defined in Codec.CBOR.Cuddle.Huddle | |
| IsType0 Double Source # | |
Defined in Codec.CBOR.Cuddle.Huddle | |
| IsType0 Float Source # | |
Defined in Codec.CBOR.Cuddle.Huddle | |
| IsType0 (Value a) Source # | |
Defined in Codec.CBOR.Cuddle.Huddle | |
data HuddleStage Source #
Instances
| IndexMappable XCddl HuddleStage CTreePhase Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XCddl HuddleStage -> XCddl CTreePhase Source # | |||||
| IndexMappable XCddl HuddleStage PrettyStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XCddl HuddleStage -> XCddl PrettyStage Source # | |||||
| IndexMappable XCddl ParserStage HuddleStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XCddl ParserStage -> XCddl HuddleStage Source # | |||||
| IndexMappable XRule HuddleStage CTreePhase Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XRule HuddleStage -> XRule CTreePhase Source # | |||||
| IndexMappable XRule HuddleStage PrettyStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XRule HuddleStage -> XRule PrettyStage Source # | |||||
| IndexMappable XTerm HuddleStage CTreePhase Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XTerm HuddleStage -> XTerm CTreePhase Source # | |||||
| IndexMappable XTerm HuddleStage PrettyStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XTerm HuddleStage -> XTerm PrettyStage Source # | |||||
| IndexMappable XTerm ParserStage HuddleStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XTerm ParserStage -> XTerm HuddleStage Source # | |||||
| IndexMappable XXTopLevel HuddleStage PrettyStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XXTopLevel HuddleStage -> XXTopLevel PrettyStage Source # | |||||
| IndexMappable XXTopLevel ParserStage HuddleStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XXTopLevel ParserStage -> XXTopLevel HuddleStage Source # | |||||
| IndexMappable XXType2 HuddleStage CTreePhase Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XXType2 HuddleStage -> XXType2 CTreePhase Source # | |||||
| IndexMappable XXType2 HuddleStage PrettyStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XXType2 HuddleStage -> XXType2 PrettyStage Source # | |||||
| IndexMappable XXType2 ParserStage HuddleStage Source # | |||||
Defined in Codec.CBOR.Cuddle.IndexMappable Methods mapIndex :: XXType2 ParserStage -> XXType2 HuddleStage Source # | |||||
| Monoid (XCddl HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods mempty :: XCddl HuddleStage # mappend :: XCddl HuddleStage -> XCddl HuddleStage -> XCddl HuddleStage # mconcat :: [XCddl HuddleStage] -> XCddl HuddleStage # | |||||
| Monoid (XTerm HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods mempty :: XTerm HuddleStage # mappend :: XTerm HuddleStage -> XTerm HuddleStage -> XTerm HuddleStage # mconcat :: [XTerm HuddleStage] -> XTerm HuddleStage # | |||||
| Monoid (XXTopLevel HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods mempty :: XXTopLevel HuddleStage # mappend :: XXTopLevel HuddleStage -> XXTopLevel HuddleStage -> XXTopLevel HuddleStage # mconcat :: [XXTopLevel HuddleStage] -> XXTopLevel HuddleStage # | |||||
| Semigroup (XCddl HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods (<>) :: XCddl HuddleStage -> XCddl HuddleStage -> XCddl HuddleStage # sconcat :: NonEmpty (XCddl HuddleStage) -> XCddl HuddleStage # stimes :: Integral b => b -> XCddl HuddleStage -> XCddl HuddleStage # | |||||
| Semigroup (XTerm HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods (<>) :: XTerm HuddleStage -> XTerm HuddleStage -> XTerm HuddleStage # sconcat :: NonEmpty (XTerm HuddleStage) -> XTerm HuddleStage # stimes :: Integral b => b -> XTerm HuddleStage -> XTerm HuddleStage # | |||||
| Semigroup (XXTopLevel HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods (<>) :: XXTopLevel HuddleStage -> XXTopLevel HuddleStage -> XXTopLevel HuddleStage # sconcat :: NonEmpty (XXTopLevel HuddleStage) -> XXTopLevel HuddleStage # stimes :: Integral b => b -> XXTopLevel HuddleStage -> XXTopLevel HuddleStage # | |||||
| Semigroup (XXType2 HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods (<>) :: XXType2 HuddleStage -> XXType2 HuddleStage -> XXType2 HuddleStage # sconcat :: NonEmpty (XXType2 HuddleStage) -> XXType2 HuddleStage # stimes :: Integral b => b -> XXType2 HuddleStage -> XXType2 HuddleStage # | |||||
| Generic (XCddl HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Associated Types
Methods from :: XCddl HuddleStage -> Rep (XCddl HuddleStage) x # to :: Rep (XCddl HuddleStage) x -> XCddl HuddleStage # | |||||
| Generic (XRule HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Associated Types
Methods from :: XRule HuddleStage -> Rep (XRule HuddleStage) x # to :: Rep (XRule HuddleStage) x -> XRule HuddleStage # | |||||
| Generic (XTerm HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Associated Types
Methods from :: XTerm HuddleStage -> Rep (XTerm HuddleStage) x # to :: Rep (XTerm HuddleStage) x -> XTerm HuddleStage # | |||||
| Generic (XXTopLevel HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Associated Types
Methods from :: XXTopLevel HuddleStage -> Rep (XXTopLevel HuddleStage) x # to :: Rep (XXTopLevel HuddleStage) x -> XXTopLevel HuddleStage # | |||||
| Generic (XXType2 HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Associated Types
Methods from :: XXType2 HuddleStage -> Rep (XXType2 HuddleStage) x # to :: Rep (XXType2 HuddleStage) x -> XXType2 HuddleStage # | |||||
| Show (XCddl HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
| Show (XTerm HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
| Show (XXTopLevel HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods showsPrec :: Int -> XXTopLevel HuddleStage -> ShowS # show :: XXTopLevel HuddleStage -> String # showList :: [XXTopLevel HuddleStage] -> ShowS # | |||||
| Show (XXType2 HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
| HasComment (XRule HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
| Default (XRule HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods def :: XRule HuddleStage # | |||||
| Eq (XCddl HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods (==) :: XCddl HuddleStage -> XCddl HuddleStage -> Bool # (/=) :: XCddl HuddleStage -> XCddl HuddleStage -> Bool # | |||||
| Eq (XTerm HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods (==) :: XTerm HuddleStage -> XTerm HuddleStage -> Bool # (/=) :: XTerm HuddleStage -> XTerm HuddleStage -> Bool # | |||||
| Eq (XXTopLevel HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods (==) :: XXTopLevel HuddleStage -> XXTopLevel HuddleStage -> Bool # (/=) :: XXTopLevel HuddleStage -> XXTopLevel HuddleStage -> Bool # | |||||
| Eq (XXType2 HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle Methods (==) :: XXType2 HuddleStage -> XXType2 HuddleStage -> Bool # (/=) :: XXType2 HuddleStage -> XXType2 HuddleStage -> Bool # | |||||
| newtype XCddl HuddleStage Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
| data XRule HuddleStage Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
| newtype XTerm HuddleStage Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
| newtype XXTopLevel HuddleStage Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
| newtype XXType2 HuddleStage Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle | |||||
| type Rep (XCddl HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle type Rep (XCddl HuddleStage) = D1 ('MetaData "XCddl" "Codec.CBOR.Cuddle.Huddle" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "HuddleXCddl" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Comment]))) | |||||
| type Rep (XRule HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle type Rep (XRule HuddleStage) = D1 ('MetaData "XRule" "Codec.CBOR.Cuddle.Huddle" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'False) (C1 ('MetaCons "HuddleXRule" 'PrefixI 'True) (S1 ('MetaSel ('Just "hxrComment") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Comment) :*: S1 ('MetaSel ('Just "hxrGenerator") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe CBORGenerator)))) | |||||
| type Rep (XTerm HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle type Rep (XTerm HuddleStage) = D1 ('MetaData "XTerm" "Codec.CBOR.Cuddle.Huddle" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "HuddleXTerm" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Comment))) | |||||
| type Rep (XXTopLevel HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle type Rep (XXTopLevel HuddleStage) = D1 ('MetaData "XXTopLevel" "Codec.CBOR.Cuddle.Huddle" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "HuddleXXTopLevel" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Comment))) | |||||
| type Rep (XXType2 HuddleStage) Source # | |||||
Defined in Codec.CBOR.Cuddle.Huddle type Rep (XXType2 HuddleStage) = D1 ('MetaData "XXType2" "Codec.CBOR.Cuddle.Huddle" "cuddle-1.1.0.0-FBfXbuYjcH55Ev8TDYHISa" 'True) (C1 ('MetaCons "HuddleXXType2" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Void))) | |||||
comment :: HasComment a => Comment -> a -> a Source #
Add a description to a rule or group entry, to be included as a comment.
class CanQuantify a where Source #
opt :: CanQuantify a => a -> a Source #
Seal an array or map, indicating that it will no longer absorb (//). This is needed if you wish to include an array or map inside a top-level choice.
sarr :: ArrayChoice -> Seal Array Source #
Create and seal an array, marking it as accepting no additional choices
smp :: MapChoice -> Seal Map Source #
Create and seal a map, marking it as accepting no additional choices.
bstr :: ByteString -> Literal Source #
class IsConstrainable a x | a -> x Source #
Minimal complete definition
toConstrainable
Instances
| IsConstrainable (Value a) a Source # | |
Defined in Codec.CBOR.Cuddle.Huddle Methods toConstrainable :: Value a -> Constrainable a | |
class IsSizeable (a :: k) Source #
Marker that we can apply the size CtlOp to something. Not intended for export.
Instances
| IsSizeable ByteString Source # | |
Defined in Codec.CBOR.Cuddle.Huddle | |
| IsSizeable Text Source # | |
Defined in Codec.CBOR.Cuddle.Huddle | |
| IsSizeable Int Source # | |
Defined in Codec.CBOR.Cuddle.Huddle | |
cbor :: (IsCborable b, IsConstrainable c b) => c -> Rule -> Constrained Source #
tag :: Word64 -> a -> Tagged a Source #
Tag a CBOR item with a CDDL minor type. Thus, `tag n x` is equivalent to `#6.n(x)` in CDDL.
Constructors
| GRuleCall | |
Fields
| |
binding2 :: (IsType0 t0, IsType0 t1) => (GRef -> GRef -> Rule) -> t0 -> t1 -> GRuleCall Source #
Bind two variables as a generic call
withGenerator :: HasGenerator a => (forall g (m :: Type -> Type). StatefulGen g m => g -> m WrappedTerm) -> a -> a Source #
collectFrom :: [HuddleItem] -> Huddle Source #
Collect all rules starting from a given point. This will also insert a single pseudo-rule as the first element which references the specified top-level rules.
collectFromInit :: [HuddleItem] -> Huddle Source #
Same as collectFrom, but the rules passed into this function will be put
at the top of the Huddle, and all of their dependencies will be added at
the end in depth-first order.
toCDDL :: Huddle -> CDDL HuddleStage Source #
Convert from Huddle to CDDL, generating a top level root element.
toCDDLNoRoot :: Huddle -> CDDL HuddleStage Source #
Convert from Huddle to CDDL, skipping a root element.
(=:=) :: IsType0 a => Name -> a -> HuddleM Rule infixl 1 Source #
Overridden version of assignment which also adds the rule to the state
(=:~) :: Name -> Group -> HuddleM GroupDef infixl 1 Source #
Overridden version of group assignment which adds the rule to the state
(=::=) :: IsType0 a => Name -> a -> Rule infixl 1 Source #
Renamed version of Huddle's underlying =:= for use in generic bindings
setRootRules :: [Rule] -> HuddleM () Source #
huddleDef' :: HuddleM a -> (a, Huddle) Source #
include :: Includable a => a -> HuddleM a Source #
Include a rule, group, or generic rule defined elsewhere
unsafeIncludeFromHuddle :: Huddle -> Name -> HuddleM HuddleItem Source #