pro-abstract-0.1.0.0: Abstract syntax for writing documents
Safe HaskellNone
LanguageHaskell2010

ProAbstract.Families

Documentation

type family Annotation x Source #

Instances

Instances details
type Annotation (Fragment ann) Source # 
Instance details

Defined in ProAbstract.Structure.Fragment

type Annotation (Fragment ann) = ann
type Annotation (Tag ann) Source # 
Instance details

Defined in ProAbstract.Tag.TagType

type Annotation (Tag ann) = ann
type Annotation (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type Annotation (Tagged (PlainBlock ann)) = ann
type Annotation (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Annotation (Tagged (Lines ann)) = ann
type Annotation (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Annotation (Tagged (Blocks ann)) = ann
type Annotation (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type Annotation (PlainBlock ann) = ann
type Annotation (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Annotation (Lines ann) = ann
type Annotation (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Annotation (Line ann) = ann
type Annotation (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Annotation (Inline ann) = ann
type Annotation (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

type Annotation (Paragraph ann) = ann
type Annotation (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Annotation (Blocks ann) = ann
type Annotation (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Annotation (Block ann) = ann
type Annotation (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

type Annotation (Document ann) = ann
type Annotation (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

type Annotation (BlockTag ann) = ann

type family Content a Source #

Instances

Instances details
type Content (Fragment ann) Source # 
Instance details

Defined in ProAbstract.Structure.Fragment

type Content (Fragment ann) = Text
type Content (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type Content (Tagged (PlainBlock ann)) = PlainBlock ann
type Content (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Content (Tagged (Lines ann)) = Lines ann
type Content (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Content (Tagged (Blocks ann)) = Blocks ann
type Content (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

type Content (Paragraph ann) = Lines ann
type Content (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

type Content (Document ann) = Blocks ann

type family Contents a Source #

Instances

Instances details
type Contents (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type Contents (Tagged (PlainBlock ann)) = Fragment ann
type Contents (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Contents (Tagged (Lines ann)) = Line ann
type Contents (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Contents (Tagged (Blocks ann)) = Block ann
type Contents (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type Contents (PlainBlock ann) = Fragment ann
type Contents (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Contents (Lines ann) = Line ann
type Contents (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Contents (Line ann) = Inline ann
type Contents (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

type Contents (Paragraph ann) = Line ann
type Contents (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Contents (Blocks ann) = Block ann
type Contents (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

type Contents (Document ann) = Block ann

type family Fork a Source #

Instances

Instances details
type Fork (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Fork (Inline ann) = Tagged (Lines ann)
type Fork (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Fork (Block ann) = Tagged (Blocks ann)
type Fork (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

type Fork (BlockTag ann) = Tagged (Blocks ann)

type family Plain a Source #

Instances

Instances details
type Plain (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Plain (Inline ann) = Fragment ann
type Plain (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Plain (Block ann) = Tagged (PlainBlock ann)
type Plain (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

type Plain (BlockTag ann) = Tagged (PlainBlock ann)

data family Tagged con Source #

Instances

Instances details
Eq ann => Eq (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Methods

(==) :: Tagged (PlainBlock ann) -> Tagged (PlainBlock ann) -> Bool #

(/=) :: Tagged (PlainBlock ann) -> Tagged (PlainBlock ann) -> Bool #

Eq ann => Eq (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

(==) :: Tagged (Lines ann) -> Tagged (Lines ann) -> Bool #

(/=) :: Tagged (Lines ann) -> Tagged (Lines ann) -> Bool #

Eq ann => Eq (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

(==) :: Tagged (Blocks ann) -> Tagged (Blocks ann) -> Bool #

(/=) :: Tagged (Blocks ann) -> Tagged (Blocks ann) -> Bool #

Show ann => Show (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Methods

showsPrec :: Int -> Tagged (PlainBlock ann) -> ShowS #

show :: Tagged (PlainBlock ann) -> String #

showList :: [Tagged (PlainBlock ann)] -> ShowS #

Show ann => Show (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

showsPrec :: Int -> Tagged (Lines ann) -> ShowS #

show :: Tagged (Lines ann) -> String #

showList :: [Tagged (Lines ann)] -> ShowS #

Show ann => Show (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

showsPrec :: Int -> Tagged (Blocks ann) -> ShowS #

show :: Tagged (Blocks ann) -> String #

showList :: [Tagged (Blocks ann)] -> ShowS #

Generic (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Associated Types

type Rep (Tagged (PlainBlock ann)) :: Type -> Type #

Methods

from :: Tagged (PlainBlock ann) -> Rep (Tagged (PlainBlock ann)) x #

to :: Rep (Tagged (PlainBlock ann)) x -> Tagged (PlainBlock ann) #

Generic (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type Rep (Tagged (Lines ann)) :: Type -> Type #

Methods

from :: Tagged (Lines ann) -> Rep (Tagged (Lines ann)) x #

to :: Rep (Tagged (Lines ann)) x -> Tagged (Lines ann) #

Generic (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type Rep (Tagged (Blocks ann)) :: Type -> Type #

Methods

from :: Tagged (Blocks ann) -> Rep (Tagged (Blocks ann)) x #

to :: Rep (Tagged (Blocks ann)) x -> Tagged (Blocks ann) #

NFData ann => NFData (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Methods

rnf :: Tagged (PlainBlock ann) -> () #

NFData ann => NFData (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

rnf :: Tagged (Lines ann) -> () #

NFData ann => NFData (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

rnf :: Tagged (Blocks ann) -> () #

Hashable ann => Hashable (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Methods

hashWithSalt :: Int -> Tagged (PlainBlock ann) -> Int #

hash :: Tagged (PlainBlock ann) -> Int #

Hashable ann => Hashable (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

hashWithSalt :: Int -> Tagged (Lines ann) -> Int #

hash :: Tagged (Lines ann) -> Int #

Hashable ann => Hashable (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

hashWithSalt :: Int -> Tagged (Blocks ann) -> Int #

hash :: Tagged (Blocks ann) -> Int #

HasMetadata (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Associated Types

type MetadataOpticKind (Tagged (PlainBlock ann)) Source #

HasMetadata (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type MetadataOpticKind (Tagged (Lines ann)) Source #

HasMetadata (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type MetadataOpticKind (Tagged (Blocks ann)) Source #

HasManyMetadata (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyMetadata (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainInlines (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyPlainInlines (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasTag (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Associated Types

type TagOpticKind (Tagged (PlainBlock ann)) Source #

HasTag (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type TagOpticKind (Tagged (Lines ann)) Source #

Methods

tag :: Optic' (TagOpticKind (Tagged (Lines ann))) NoIx (Tagged (Lines ann)) (Tag (Annotation (Tagged (Lines ann)))) Source #

HasTag (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type TagOpticKind (Tagged (Blocks ann)) Source #

HasWitherableInlineTags (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

witherInlineTags :: Monad f => (Tag (Annotation (Tagged (Lines ann))) -> f (Maybe (Tag (Annotation (Tagged (Lines ann)))))) -> Tagged (Lines ann) -> f (Tagged (Lines ann)) Source #

mapMaybeInlineTags :: (Tag (Annotation (Tagged (Lines ann))) -> Maybe (Tag (Annotation (Tagged (Lines ann))))) -> Tagged (Lines ann) -> Tagged (Lines ann) Source #

HasWitherableInlineTags (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

witherInlineTags :: Monad f => (Tag (Annotation (Tagged (Blocks ann))) -> f (Maybe (Tag (Annotation (Tagged (Blocks ann)))))) -> Tagged (Blocks ann) -> f (Tagged (Blocks ann)) Source #

mapMaybeInlineTags :: (Tag (Annotation (Tagged (Blocks ann))) -> Maybe (Tag (Annotation (Tagged (Blocks ann))))) -> Tagged (Blocks ann) -> Tagged (Blocks ann) Source #

HasManyBlockTags (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyTags (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyTags (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainBlocks (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyParagraphs (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

CanHaveTaglessContent (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

CanHaveTaglessContent (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

CanHaveTaglessContent (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

HasAnnotation (Tagged (PlainBlock ann)) (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

HasAnnotation (Tagged (Lines ann)) (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

annotation :: Lens (Tagged (Lines ann)) (Tagged (Lines ann)) (Annotation (Tagged (Lines ann))) (Annotation (Tagged (Lines ann))) Source #

HasAnnotation (Tagged (Blocks ann)) (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyAnnotations (Tagged (PlainBlock ann)) (Tagged (PlainBlock ann')) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

HasManyAnnotations (Tagged (Lines ann)) (Tagged (Lines ann')) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyAnnotations (Tagged (Blocks ann)) (Tagged (Blocks ann')) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasContent (Tagged (PlainBlock ann)) (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

HasContent (Tagged (Lines ann)) (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

content :: Lens (Tagged (Lines ann)) (Tagged (Lines ann)) (Content (Tagged (Lines ann))) (Content (Tagged (Lines ann))) Source #

HasContent (Tagged (Blocks ann)) (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

content :: Lens (Tagged (Blocks ann)) (Tagged (Blocks ann)) (Content (Tagged (Blocks ann))) (Content (Tagged (Blocks ann))) Source #

HasContents (Tagged (PlainBlock ann)) (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

HasContents (Tagged (Lines ann)) (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

contents :: Lens (Tagged (Lines ann)) (Tagged (Lines ann)) (Seq (Contents (Tagged (Lines ann)))) (Seq (Contents (Tagged (Lines ann)))) Source #

HasContents (Tagged (Blocks ann)) (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

contents :: Lens (Tagged (Blocks ann)) (Tagged (Blocks ann)) (Seq (Contents (Tagged (Blocks ann)))) (Seq (Contents (Tagged (Blocks ann)))) Source #

type Rep (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type Rep (Tagged (PlainBlock ann)) = D1 ('MetaData "Tagged" "ProAbstract.Structure.PlainBlock" "pro-abstract-0.1.0.0-fAo99Omz3u7l2SA6DiDR2" 'False) (C1 ('MetaCons "TaggedPlainBlock" 'PrefixI 'True) (S1 ('MetaSel ('Just "plaintextTag") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Tag ann)) :*: S1 ('MetaSel ('Just "taggedPlaintext") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (PlainBlock ann))))
type Rep (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Rep (Tagged (Lines ann)) = D1 ('MetaData "Tagged" "ProAbstract.Structure.Inline" "pro-abstract-0.1.0.0-fAo99Omz3u7l2SA6DiDR2" 'False) (C1 ('MetaCons "TaggedLines" 'PrefixI 'True) (S1 ('MetaSel ('Just "linesTag") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Tag ann)) :*: S1 ('MetaSel ('Just "taggedLines") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Lines ann))))
type Rep (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Rep (Tagged (Blocks ann)) = D1 ('MetaData "Tagged" "ProAbstract.Structure.Block" "pro-abstract-0.1.0.0-fAo99Omz3u7l2SA6DiDR2" 'False) (C1 ('MetaCons "TaggedBlocks" 'PrefixI 'True) (S1 ('MetaSel ('Just "blocksTag") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Tag ann)) :*: S1 ('MetaSel ('Just "taggedBlocks") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Blocks ann))))
type Annotation (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type Annotation (Tagged (PlainBlock ann)) = ann
type Annotation (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Annotation (Tagged (Lines ann)) = ann
type Annotation (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Annotation (Tagged (Blocks ann)) = ann
type Content (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type Content (Tagged (PlainBlock ann)) = PlainBlock ann
type Content (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Content (Tagged (Lines ann)) = Lines ann
type Content (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Content (Tagged (Blocks ann)) = Blocks ann
type Contents (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type Contents (Tagged (PlainBlock ann)) = Fragment ann
type Contents (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Contents (Tagged (Lines ann)) = Line ann
type Contents (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Contents (Tagged (Blocks ann)) = Block ann
type MetadataOpticKind (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type MetadataOpticKind (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type MetadataOpticKind (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type TagOpticKind (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type TagOpticKind (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type TagOpticKind (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

data Tagged (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

data Tagged (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

data Tagged (Lines ann) = TaggedLines {}
data Tagged (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block