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

ProAbstract.Structure

Synopsis

Document

data Document ann Source #

Instances

Instances details
Eq ann => Eq (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

Methods

(==) :: Document ann -> Document ann -> Bool #

(/=) :: Document ann -> Document ann -> Bool #

Show ann => Show (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

Methods

showsPrec :: Int -> Document ann -> ShowS #

show :: Document ann -> String #

showList :: [Document ann] -> ShowS #

Generic (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

Associated Types

type Rep (Document ann) :: Type -> Type #

Methods

from :: Document ann -> Rep (Document ann) x #

to :: Rep (Document ann) x -> Document ann #

NFData ann => NFData (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

Methods

rnf :: Document ann -> () #

Hashable ann => Hashable (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

Methods

hashWithSalt :: Int -> Document ann -> Int #

hash :: Document ann -> Int #

HasMetadata (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

Associated Types

type MetadataOpticKind (Document ann) Source #

HasManyMetadata (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

HasManyPlainInlines (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

HasWitherableInlineTags (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

Methods

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

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

HasWitherableBlockTags (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

Methods

witherBlockTags :: Monad f => (Tag (Annotation (Document ann)) -> f (Maybe (Tag (Annotation (Document ann))))) -> Document ann -> f (Document ann) Source #

mapMaybeBlockTags :: (Tag (Annotation (Document ann)) -> Maybe (Tag (Annotation (Document ann)))) -> Document ann -> Document ann Source #

HasManyBlockTags (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

HasWitherableTags (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

Methods

witherTags :: Monad f => (Tag (Annotation (Document ann)) -> f (Maybe (Tag (Annotation (Document ann))))) -> Document ann -> f (Document ann) Source #

mapMaybeTags :: (Tag (Annotation (Document ann)) -> Maybe (Tag (Annotation (Document ann)))) -> Document ann -> Document ann Source #

HasManyTags (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

HasManyPlainBlocks (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

HasManyParagraphs (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

CanHaveTaglessContent (Document ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

HasManyAnnotations (Document ann) (Document ann') Source # 
Instance details

Defined in ProAbstract.Structure.Document

HasContent (Document ann) (Document ann') Source # 
Instance details

Defined in ProAbstract.Structure.Document

Methods

content :: Lens (Document ann) (Document ann') (Content (Document ann)) (Content (Document ann')) Source #

HasContents (Document ann) (Document ann') Source # 
Instance details

Defined in ProAbstract.Structure.Document

Methods

contents :: Lens (Document ann) (Document ann') (Seq (Contents (Document ann))) (Seq (Contents (Document ann'))) Source #

type Rep (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

type Rep (Document ann) = D1 ('MetaData "Document" "ProAbstract.Structure.Document" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'False) (C1 ('MetaCons "Document" 'PrefixI 'True) (S1 ('MetaSel ('Just "documentMetadata") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Metadata) :*: S1 ('MetaSel ('Just "documentContent") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Blocks ann))))
type Annotation (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

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

Defined in ProAbstract.Structure.Document

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

Defined in ProAbstract.Structure.Document

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

Defined in ProAbstract.Structure.Document

Blocks

data Block ann Source #

Instances

Instances details
Eq ann => Eq (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

(==) :: Block ann -> Block ann -> Bool #

(/=) :: Block ann -> Block ann -> Bool #

Show ann => Show (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

showsPrec :: Int -> Block ann -> ShowS #

show :: Block ann -> String #

showList :: [Block ann] -> ShowS #

Generic (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type Rep (Block ann) :: Type -> Type #

Methods

from :: Block ann -> Rep (Block ann) x #

to :: Rep (Block ann) x -> Block ann #

NFData ann => NFData (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

rnf :: Block ann -> () #

Hashable ann => Hashable (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

hashWithSalt :: Int -> Block ann -> Int #

hash :: Block ann -> Int #

HasMetadata (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type MetadataOpticKind (Block ann) Source #

HasManyMetadata (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

CanFork (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

fork :: Prism' (Block ann) (Fork (Block ann)) Source #

HasManyPlainInlines (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

CanBePlain (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

plain :: Prism' (Block ann) (Plain (Block ann)) Source #

HasTag (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type TagOpticKind (Block ann) Source #

Methods

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

HasWitherableInlineTags (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

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

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

HasManyBlockTags (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyTags (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainBlocks (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyParagraphs (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

IsTaggedOrBare (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.IsTaggedOrBare

Associated Types

type TaggedType (Block ann) Source #

type BareType (Block ann) Source #

Methods

taggedOrBare :: Iso' (Block ann) (TaggedOrBare (Block ann)) Source #

CanBeTagless (Block ann) Source #

Only a bare block is considered to be plain text, because fork and plain blocks have tags.

Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

tagless :: KindOfText txt -> AffineFold (Block ann) txt Source #

CanHaveTaglessContent (Block ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

HasAnnotation (Block ann) (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

annotation :: Lens (Block ann) (Block ann) (Annotation (Block ann)) (Annotation (Block ann)) Source #

HasManyAnnotations (Block ann) (Block ann') Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

allAnnotations :: Traversal (Block ann) (Block ann') (Annotation (Block ann)) (Annotation (Block ann')) Source #

type Rep (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Rep (Block ann) = D1 ('MetaData "Block" "ProAbstract.Structure.Block" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'False) (C1 ('MetaCons "BlockPlain" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TaggedPlainBlock ann))) :+: (C1 ('MetaCons "BlockParagraph" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Paragraph ann))) :+: C1 ('MetaCons "BlockFork" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TaggedBlocks ann)))))
type Annotation (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

type Fork (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Fork (Block ann) = TaggedBlocks ann
type Plain (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Plain (Block ann) = TaggedPlainBlock ann
type TagOpticKind (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type TaggedType (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.IsTaggedOrBare

type TaggedType (Block ann) = BlockTag ann
type BareType (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.IsTaggedOrBare

type BareType (Block ann) = Paragraph ann

newtype Blocks ann Source #

Constructors

Blocks (Seq (Block ann))

content

Instances

Instances details
IsList (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type Item (Blocks ann) #

Methods

fromList :: [Item (Blocks ann)] -> Blocks ann #

fromListN :: Int -> [Item (Blocks ann)] -> Blocks ann #

toList :: Blocks ann -> [Item (Blocks ann)] #

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

Defined in ProAbstract.Structure.Block

Methods

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

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

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

Defined in ProAbstract.Structure.Block

Methods

showsPrec :: Int -> Blocks ann -> ShowS #

show :: Blocks ann -> String #

showList :: [Blocks ann] -> ShowS #

Generic (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

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

Methods

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

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

Semigroup (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

(<>) :: Blocks ann -> Blocks ann -> Blocks ann #

sconcat :: NonEmpty (Blocks ann) -> Blocks ann #

stimes :: Integral b => b -> Blocks ann -> Blocks ann #

Monoid (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

mempty :: Blocks ann #

mappend :: Blocks ann -> Blocks ann -> Blocks ann #

mconcat :: [Blocks ann] -> Blocks ann #

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

Defined in ProAbstract.Structure.Block

Methods

rnf :: Blocks ann -> () #

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

Defined in ProAbstract.Structure.Block

Methods

hashWithSalt :: Int -> Blocks ann -> Int #

hash :: Blocks ann -> Int #

HasManyMetadata (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainInlines (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasWitherableInlineTags (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

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

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

HasWitherableBlockTags (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

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

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

HasManyBlockTags (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasWitherableTags (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

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

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

HasManyTags (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainBlocks (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyParagraphs (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

CanBeTagless (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

tagless :: KindOfText txt -> AffineFold (Blocks ann) txt Source #

CanHaveTaglessContent (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

Methods

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

type Rep (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Rep (Blocks ann) = D1 ('MetaData "Blocks" "ProAbstract.Structure.Block" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'True) (C1 ('MetaCons "Blocks" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Seq (Block ann)))))
type Item (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

type Contents (Blocks ann) = Block ann

data BlockTag ann Source #

Instances

Instances details
Eq ann => Eq (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Methods

(==) :: BlockTag ann -> BlockTag ann -> Bool #

(/=) :: BlockTag ann -> BlockTag ann -> Bool #

Show ann => Show (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Methods

showsPrec :: Int -> BlockTag ann -> ShowS #

show :: BlockTag ann -> String #

showList :: [BlockTag ann] -> ShowS #

Generic (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Associated Types

type Rep (BlockTag ann) :: Type -> Type #

Methods

from :: BlockTag ann -> Rep (BlockTag ann) x #

to :: Rep (BlockTag ann) x -> BlockTag ann #

NFData ann => NFData (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Methods

rnf :: BlockTag ann -> () #

Hashable ann => Hashable (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Methods

hashWithSalt :: Int -> BlockTag ann -> Int #

hash :: BlockTag ann -> Int #

HasMetadata (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Associated Types

type MetadataOpticKind (BlockTag ann) Source #

HasManyMetadata (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

CanFork (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Methods

fork :: Prism' (BlockTag ann) (Fork (BlockTag ann)) Source #

HasManyPlainInlines (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

CanBePlain (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Methods

plain :: Prism' (BlockTag ann) (Plain (BlockTag ann)) Source #

HasTag (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Associated Types

type TagOpticKind (BlockTag ann) Source #

HasManyTags (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

HasManyPlainBlocks (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

HasManyParagraphs (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

CanHaveTaglessContent (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

HasAnnotation (BlockTag ann) (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

HasManyAnnotations (BlockTag ann) (BlockTag ann') Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

HasContent (BlockTag ann) (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Methods

content :: Lens (BlockTag ann) (BlockTag ann) (Content (BlockTag ann)) (Content (BlockTag ann)) Source #

type Rep (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

type Rep (BlockTag ann) = D1 ('MetaData "BlockTag" "ProAbstract.Structure.BlockTag" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'False) (C1 ('MetaCons "BlockTagFork" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TaggedBlocks ann))) :+: C1 ('MetaCons "BlockTagPlain" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TaggedPlainBlock ann))))
type Annotation (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

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

Defined in ProAbstract.Structure.BlockTag

type MetadataOpticKind (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

type Fork (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

type Fork (BlockTag ann) = TaggedBlocks ann
type Plain (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

type TagOpticKind (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

data TaggedBlocks ann Source #

Constructors

TaggedBlocks 

Instances

Instances details
Eq ann => Eq (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

(==) :: TaggedBlocks ann -> TaggedBlocks ann -> Bool #

(/=) :: TaggedBlocks ann -> TaggedBlocks ann -> Bool #

Show ann => Show (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Generic (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type Rep (TaggedBlocks ann) :: Type -> Type #

Methods

from :: TaggedBlocks ann -> Rep (TaggedBlocks ann) x #

to :: Rep (TaggedBlocks ann) x -> TaggedBlocks ann #

NFData ann => NFData (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

rnf :: TaggedBlocks ann -> () #

Hashable ann => Hashable (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

hashWithSalt :: Int -> TaggedBlocks ann -> Int #

hash :: TaggedBlocks ann -> Int #

HasMetadata (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type MetadataOpticKind (TaggedBlocks ann) Source #

HasManyMetadata (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainInlines (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasTag (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type TagOpticKind (TaggedBlocks ann) Source #

HasWitherableInlineTags (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyBlockTags (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyTags (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainBlocks (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyParagraphs (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

CanHaveTaglessContent (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

HasAnnotation (TaggedBlocks ann) (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyAnnotations (TaggedBlocks ann) (TaggedBlocks ann') Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasContent (TaggedBlocks ann) (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasContents (TaggedBlocks ann) (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Rep (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Rep (TaggedBlocks ann) = D1 ('MetaData "TaggedBlocks" "ProAbstract.Structure.Block" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" '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 (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Annotation (TaggedBlocks ann) = ann
type Content (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

type Contents (TaggedBlocks ann) = Block ann
type MetadataOpticKind (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type TagOpticKind (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

data BlockTagContent ann Source #

Instances

Instances details
Eq ann => Eq (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

Show ann => Show (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

Generic (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

Associated Types

type Rep (BlockTagContent ann) :: Type -> Type #

Methods

from :: BlockTagContent ann -> Rep (BlockTagContent ann) x #

to :: Rep (BlockTagContent ann) x -> BlockTagContent ann #

NFData ann => NFData (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

Methods

rnf :: BlockTagContent ann -> () #

Hashable ann => Hashable (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasManyMetadata (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

CanFork (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasManyPlainInlines (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

CanBePlain (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasWitherableInlineTags (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasWitherableBlockTags (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasManyBlockTags (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasWitherableTags (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasManyTags (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasManyPlainBlocks (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasManyParagraphs (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

CanBeTagless (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

CanHaveTaglessContent (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

HasManyAnnotations (BlockTagContent ann) (BlockTagContent ann') Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

type Rep (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

type Rep (BlockTagContent ann) = D1 ('MetaData "BlockTagContent" "ProAbstract.Structure.BlockTagContent" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'False) (C1 ('MetaCons "BlockTagContent_Fork" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Blocks ann))) :+: C1 ('MetaCons "BlockTagContent_Plain" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (PlainBlock ann))))
type Annotation (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

type Annotation (BlockTagContent ann) = ann
type Fork (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

type Fork (BlockTagContent ann) = Blocks ann
type Plain (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

data TaggedPlainBlock ann Source #

Instances

Instances details
Eq ann => Eq (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Show ann => Show (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Generic (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Associated Types

type Rep (TaggedPlainBlock ann) :: Type -> Type #

NFData ann => NFData (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Methods

rnf :: TaggedPlainBlock ann -> () #

Hashable ann => Hashable (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

HasMetadata (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Associated Types

type MetadataOpticKind (TaggedPlainBlock ann) Source #

HasTag (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Associated Types

type TagOpticKind (TaggedPlainBlock ann) Source #

CanHaveTaglessContent (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

HasAnnotation (TaggedPlainBlock ann) (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

HasManyAnnotations (TaggedPlainBlock ann) (TaggedPlainBlock ann') Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

HasContent (TaggedPlainBlock ann) (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

HasContents (TaggedPlainBlock ann) (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type Rep (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type Rep (TaggedPlainBlock ann) = D1 ('MetaData "TaggedPlainBlock" "ProAbstract.Structure.PlainBlock" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" '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 Annotation (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type Annotation (TaggedPlainBlock ann) = ann
type Content (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type Contents (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type MetadataOpticKind (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type TagOpticKind (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Paragraph

data Paragraph ann Source #

A collection of Lines. A Paragraph represents the border between block and inline contexts. All ancestors of a paragraph are block items or a document, and all children are inline items.

Instances

Instances details
Eq ann => Eq (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

Methods

(==) :: Paragraph ann -> Paragraph ann -> Bool #

(/=) :: Paragraph ann -> Paragraph ann -> Bool #

Show ann => Show (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

Methods

showsPrec :: Int -> Paragraph ann -> ShowS #

show :: Paragraph ann -> String #

showList :: [Paragraph ann] -> ShowS #

Generic (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

Associated Types

type Rep (Paragraph ann) :: Type -> Type #

Methods

from :: Paragraph ann -> Rep (Paragraph ann) x #

to :: Rep (Paragraph ann) x -> Paragraph ann #

NFData ann => NFData (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

Methods

rnf :: Paragraph ann -> () #

Hashable ann => Hashable (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

Methods

hashWithSalt :: Int -> Paragraph ann -> Int #

hash :: Paragraph ann -> Int #

HasManyMetadata (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

HasManyPlainInlines (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

HasWitherableInlineTags (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

HasManyTags (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

CanBeTagless (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

tagless :: KindOfText txt -> AffineFold (Paragraph ann) txt Source #

HasAnnotation (Paragraph ann) (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

HasManyAnnotations (Paragraph ann) (Paragraph ann') Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

HasContent (Paragraph ann) (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

Methods

content :: Lens (Paragraph ann) (Paragraph ann) (Content (Paragraph ann)) (Content (Paragraph ann)) Source #

HasContents (Paragraph ann) (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

Methods

contents :: Lens (Paragraph ann) (Paragraph ann) (Seq (Contents (Paragraph ann))) (Seq (Contents (Paragraph ann))) Source #

type Rep (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

type Rep (Paragraph ann) = D1 ('MetaData "Paragraph" "ProAbstract.Structure.Paragraph" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'False) (C1 ('MetaCons "Paragraph" 'PrefixI 'True) (S1 ('MetaSel ('Just "paragraphContent") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Lines ann)) :*: S1 ('MetaSel ('Just "paragraphAnnotation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann)))
type Annotation (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

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

Defined in ProAbstract.Structure.Paragraph

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

Defined in ProAbstract.Structure.Paragraph

type Contents (Paragraph ann) = Line ann

Inlines

data Inline ann Source #

Instances

Instances details
Eq ann => Eq (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

(==) :: Inline ann -> Inline ann -> Bool #

(/=) :: Inline ann -> Inline ann -> Bool #

Show ann => Show (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

showsPrec :: Int -> Inline ann -> ShowS #

show :: Inline ann -> String #

showList :: [Inline ann] -> ShowS #

Generic (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type Rep (Inline ann) :: Type -> Type #

Methods

from :: Inline ann -> Rep (Inline ann) x #

to :: Rep (Inline ann) x -> Inline ann #

NFData ann => NFData (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

rnf :: Inline ann -> () #

Hashable ann => Hashable (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

hashWithSalt :: Int -> Inline ann -> Int #

hash :: Inline ann -> Int #

HasMetadata (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type MetadataOpticKind (Inline ann) Source #

HasManyMetadata (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

CanFork (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

fork :: Prism' (Inline ann) (Fork (Inline ann)) Source #

HasManyPlainInlines (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

CanBePlain (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

plain :: Prism' (Inline ann) (Plain (Inline ann)) Source #

HasTag (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type TagOpticKind (Inline ann) Source #

Methods

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

HasManyTags (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

IsTaggedOrBare (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.IsTaggedOrBare

Associated Types

type TaggedType (Inline ann) Source #

type BareType (Inline ann) Source #

CanBeTagless (Inline ann) Source #

Only a plain inline is considered to be plain text, because fork inlines have a tags.

Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

tagless :: KindOfText txt -> AffineFold (Inline ann) txt Source #

CanHaveTaglessContent (Inline ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

HasAnnotation (Inline ann) (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

annotation :: Lens (Inline ann) (Inline ann) (Annotation (Inline ann)) (Annotation (Inline ann)) Source #

HasManyAnnotations (Inline ann) (Inline ann') Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Rep (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Rep (Inline ann) = D1 ('MetaData "Inline" "ProAbstract.Structure.Inline" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'False) (C1 ('MetaCons "InlineFork" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TaggedLines ann))) :+: C1 ('MetaCons "InlinePlain" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Fragment ann))))
type Annotation (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

type Fork (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Fork (Inline ann) = TaggedLines ann
type Plain (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

type TaggedType (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.IsTaggedOrBare

type TaggedType (Inline ann) = TaggedLines ann
type BareType (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.IsTaggedOrBare

type BareType (Inline ann) = Fragment ann

data Line ann Source #

Instances

Instances details
IsList (Line ()) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type Item (Line ()) #

Methods

fromList :: [Item (Line ())] -> Line () #

fromListN :: Int -> [Item (Line ())] -> Line () #

toList :: Line () -> [Item (Line ())] #

Eq ann => Eq (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

(==) :: Line ann -> Line ann -> Bool #

(/=) :: Line ann -> Line ann -> Bool #

Show ann => Show (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

showsPrec :: Int -> Line ann -> ShowS #

show :: Line ann -> String #

showList :: [Line ann] -> ShowS #

Generic (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type Rep (Line ann) :: Type -> Type #

Methods

from :: Line ann -> Rep (Line ann) x #

to :: Rep (Line ann) x -> Line ann #

NFData ann => NFData (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

rnf :: Line ann -> () #

Hashable ann => Hashable (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

hashWithSalt :: Int -> Line ann -> Int #

hash :: Line ann -> Int #

HasManyMetadata (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyPlainInlines (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasWitherableInlineTags (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

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

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

HasWitherableTags (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

witherTags :: Monad f => (Tag (Annotation (Line ann)) -> f (Maybe (Tag (Annotation (Line ann))))) -> Line ann -> f (Line ann) Source #

mapMaybeTags :: (Tag (Annotation (Line ann)) -> Maybe (Tag (Annotation (Line ann)))) -> Line ann -> Line ann Source #

HasManyTags (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

CanBeTagless (Line ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

tagless :: KindOfText txt -> AffineFold (Line ann) txt Source #

CanHaveTaglessContent (Line ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

HasAnnotation (Line ann) (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

annotation :: Lens (Line ann) (Line ann) (Annotation (Line ann)) (Annotation (Line ann)) Source #

HasManyAnnotations (Line ann) (Line ann') Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

allAnnotations :: Traversal (Line ann) (Line ann') (Annotation (Line ann)) (Annotation (Line ann')) Source #

HasContents (Line ann) (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

contents :: Lens (Line ann) (Line ann) (Seq (Contents (Line ann))) (Seq (Contents (Line ann))) Source #

type Rep (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Rep (Line ann) = D1 ('MetaData "Line" "ProAbstract.Structure.Inline" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'False) (C1 ('MetaCons "Line" 'PrefixI 'True) (S1 ('MetaSel ('Just "lineInlines") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Seq (Inline ann))) :*: S1 ('MetaSel ('Just "lineAnnotation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann)))
type Item (Line ()) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

type Contents (Line ann) = Inline ann

newtype Lines ann Source #

Constructors

Lines (Seq (Line ann))

contentsSeq

Instances

Instances details
IsList (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type Item (Lines ann) #

Methods

fromList :: [Item (Lines ann)] -> Lines ann #

fromListN :: Int -> [Item (Lines ann)] -> Lines ann #

toList :: Lines ann -> [Item (Lines ann)] #

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

Defined in ProAbstract.Structure.Inline

Methods

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

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

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

Defined in ProAbstract.Structure.Inline

Methods

showsPrec :: Int -> Lines ann -> ShowS #

show :: Lines ann -> String #

showList :: [Lines ann] -> ShowS #

Generic (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

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

Methods

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

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

Semigroup (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

(<>) :: Lines ann -> Lines ann -> Lines ann #

sconcat :: NonEmpty (Lines ann) -> Lines ann #

stimes :: Integral b => b -> Lines ann -> Lines ann #

Monoid (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

mempty :: Lines ann #

mappend :: Lines ann -> Lines ann -> Lines ann #

mconcat :: [Lines ann] -> Lines ann #

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

Defined in ProAbstract.Structure.Inline

Methods

rnf :: Lines ann -> () #

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

Defined in ProAbstract.Structure.Inline

Methods

hashWithSalt :: Int -> Lines ann -> Int #

hash :: Lines ann -> Int #

HasManyMetadata (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyPlainInlines (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasWitherableInlineTags (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

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

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

HasWitherableTags (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

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

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

HasManyTags (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

CanBeTagless (Lines ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

tagless :: KindOfText txt -> AffineFold (Lines ann) txt Source #

CanHaveTaglessContent (Lines ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

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

Defined in ProAbstract.Structure.Inline

Methods

allAnnotations :: Traversal (Lines ann) (Lines ann') (Annotation (Lines ann)) (Annotation (Lines ann')) Source #

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

Defined in ProAbstract.Structure.Inline

Methods

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

type Rep (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Rep (Lines ann) = D1 ('MetaData "Lines" "ProAbstract.Structure.Inline" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'True) (C1 ('MetaCons "Lines" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Seq (Line ann)))))
type Item (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

type Contents (Lines ann) = Line ann

data TaggedLines ann Source #

Constructors

TaggedLines 

Instances

Instances details
Eq ann => Eq (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

(==) :: TaggedLines ann -> TaggedLines ann -> Bool #

(/=) :: TaggedLines ann -> TaggedLines ann -> Bool #

Show ann => Show (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

showsPrec :: Int -> TaggedLines ann -> ShowS #

show :: TaggedLines ann -> String #

showList :: [TaggedLines ann] -> ShowS #

Generic (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type Rep (TaggedLines ann) :: Type -> Type #

Methods

from :: TaggedLines ann -> Rep (TaggedLines ann) x #

to :: Rep (TaggedLines ann) x -> TaggedLines ann #

NFData ann => NFData (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

rnf :: TaggedLines ann -> () #

Hashable ann => Hashable (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

hashWithSalt :: Int -> TaggedLines ann -> Int #

hash :: TaggedLines ann -> Int #

HasMetadata (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type MetadataOpticKind (TaggedLines ann) Source #

HasManyMetadata (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyPlainInlines (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasTag (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type TagOpticKind (TaggedLines ann) Source #

HasWitherableInlineTags (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyTags (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

CanHaveTaglessContent (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

HasAnnotation (TaggedLines ann) (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyAnnotations (TaggedLines ann) (TaggedLines ann') Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasContent (TaggedLines ann) (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasContents (TaggedLines ann) (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Rep (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Rep (TaggedLines ann) = D1 ('MetaData "TaggedLines" "ProAbstract.Structure.Inline" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" '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 Annotation (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Annotation (TaggedLines ann) = ann
type Content (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Content (TaggedLines ann) = Lines ann
type Contents (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Contents (TaggedLines ann) = Line ann
type MetadataOpticKind (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type TagOpticKind (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Text

data PlainBlock ann Source #

Instances

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

Defined in ProAbstract.Structure.PlainBlock

Methods

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

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

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

Defined in ProAbstract.Structure.PlainBlock

Methods

showsPrec :: Int -> PlainBlock ann -> ShowS #

show :: PlainBlock ann -> String #

showList :: [PlainBlock ann] -> ShowS #

Generic (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Associated Types

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

Methods

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

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

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

Defined in ProAbstract.Structure.PlainBlock

Methods

rnf :: PlainBlock ann -> () #

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

Defined in ProAbstract.Structure.PlainBlock

Methods

hashWithSalt :: Int -> PlainBlock ann -> Int #

hash :: PlainBlock ann -> Int #

CanBeTagless (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

tagless :: KindOfText txt -> AffineFold (PlainBlock ann) txt Source #

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

type Rep (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type Rep (PlainBlock ann) = D1 ('MetaData "PlainBlock" "ProAbstract.Structure.PlainBlock" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'False) (C1 ('MetaCons "PlainBlock" 'PrefixI 'True) (S1 ('MetaSel ('Just "plainBlockLines") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Seq (Fragment ann))) :*: S1 ('MetaSel ('Just "plainBlockAnnotation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann)))
type Annotation (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

type Contents (PlainBlock ann) = Fragment ann

data Fragment ann Source #

Instances

Instances details
Eq ann => Eq (Fragment ann) Source # 
Instance details

Defined in ProAbstract.Structure.Fragment

Methods

(==) :: Fragment ann -> Fragment ann -> Bool #

(/=) :: Fragment ann -> Fragment ann -> Bool #

Show ann => Show (Fragment ann) Source # 
Instance details

Defined in ProAbstract.Structure.Fragment

Methods

showsPrec :: Int -> Fragment ann -> ShowS #

show :: Fragment ann -> String #

showList :: [Fragment ann] -> ShowS #

Generic (Fragment ann) Source # 
Instance details

Defined in ProAbstract.Structure.Fragment

Associated Types

type Rep (Fragment ann) :: Type -> Type #

Methods

from :: Fragment ann -> Rep (Fragment ann) x #

to :: Rep (Fragment ann) x -> Fragment ann #

NFData ann => NFData (Fragment ann) Source # 
Instance details

Defined in ProAbstract.Structure.Fragment

Methods

rnf :: Fragment ann -> () #

Hashable ann => Hashable (Fragment ann) Source # 
Instance details

Defined in ProAbstract.Structure.Fragment

Methods

hashWithSalt :: Int -> Fragment ann -> Int #

hash :: Fragment ann -> Int #

CanBeTagless (Fragment ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

tagless :: KindOfText txt -> AffineFold (Fragment ann) txt Source #

CanHaveTaglessContent (Fragment ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

HasAnnotation (Fragment ann) (Fragment ann') Source # 
Instance details

Defined in ProAbstract.Structure.Fragment

Methods

annotation :: Lens (Fragment ann) (Fragment ann') (Annotation (Fragment ann)) (Annotation (Fragment ann')) Source #

HasContent (Fragment ann) (Fragment ann) Source # 
Instance details

Defined in ProAbstract.Structure.Fragment

Methods

content :: Lens (Fragment ann) (Fragment ann) (Content (Fragment ann)) (Content (Fragment ann)) Source #

type Rep (Fragment ann) Source # 
Instance details

Defined in ProAbstract.Structure.Fragment

type Rep (Fragment ann) = D1 ('MetaData "Fragment" "ProAbstract.Structure.Fragment" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'False) (C1 ('MetaCons "Fragment" 'PrefixI 'True) (S1 ('MetaSel ('Just "fragmentText") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "fragmentAnnotation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann)))
type Annotation (Fragment ann) Source # 
Instance details

Defined in ProAbstract.Structure.Fragment

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

Defined in ProAbstract.Structure.Fragment

type Content (Fragment ann) = Text

Plain or fork

class CanBePlain x where Source #

Methods

plain :: Prism' x (Plain x) Source #

Instances

Instances details
CanBePlain (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

plain :: Prism' (Inline ann) (Plain (Inline ann)) Source #

CanBePlain (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

plain :: Prism' (Block ann) (Plain (Block ann)) Source #

CanBePlain (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

CanBePlain (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Methods

plain :: Prism' (BlockTag ann) (Plain (BlockTag ann)) Source #

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) = TaggedPlainBlock ann
type Plain (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

type Plain (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

class CanFork x where Source #

Methods

fork :: Prism' x (Fork x) Source #

Instances

Instances details
CanFork (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

fork :: Prism' (Inline ann) (Fork (Inline ann)) Source #

CanFork (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

fork :: Prism' (Block ann) (Fork (Block ann)) Source #

CanFork (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

CanFork (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Methods

fork :: Prism' (BlockTag ann) (Fork (BlockTag ann)) Source #

type family Fork a Source #

Instances

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Block

type Fork (Block ann) = TaggedBlocks ann
type Fork (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

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

Defined in ProAbstract.Structure.BlockTag

type Fork (BlockTag ann) = TaggedBlocks ann

Tagged or bare

class IsTaggedOrBare a where Source #

Associated Types

type TaggedType a Source #

type BareType a Source #

Instances

Instances details
IsTaggedOrBare (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.IsTaggedOrBare

Associated Types

type TaggedType (Inline ann) Source #

type BareType (Inline ann) Source #

IsTaggedOrBare (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.IsTaggedOrBare

Associated Types

type TaggedType (Block ann) Source #

type BareType (Block ann) Source #

Methods

taggedOrBare :: Iso' (Block ann) (TaggedOrBare (Block ann)) Source #

IsTaggedOrBare (TaggedOrBare a) Source # 
Instance details

Defined in ProAbstract.Structure.IsTaggedOrBare

Associated Types

type TaggedType (TaggedOrBare a) Source #

type BareType (TaggedOrBare a) Source #

data TaggedOrBare a Source #

Constructors

IsTagged (TaggedType a) 
IsBare (BareType a) 

Traversals

class HasManyPlainInlines x where Source #

Instances

Instances details
HasManyPlainInlines (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyPlainInlines (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyPlainInlines (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyPlainInlines (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyPlainInlines (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

HasManyPlainInlines (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainInlines (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainInlines (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainInlines (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

HasManyPlainInlines (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasManyPlainInlines (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag