pro-abstract-0.1.0.0: Abstract syntax for writing documents
Copyright© 2020 James Alexander Feldman-Crough
© 2022 Mission Valley Software LLC
LicenseMPL-2.0
Safe HaskellNone
LanguageHaskell2010

ProAbstract

Description

Document

Document is the root of the tree.

Tagged nodes

Tagged nodes are branch points within a document.

Tagged is a data family, where the type parameter corresponds to the type of content under the tag. There are three instances of this family:

Optics:

  • tag targets the tag at a node; it is either a prism or an affine traversal, depending on the node type.
  • The allTags traversal targets every tag at and below a node.
  • The allBlockTags and allInlineTags also target tags at or below a node, but are limited to tags at the block or inline level, respectively.
  • Since a tag has metadata, all of the optics for targeting parts of metadata (e.g. atSetting and hasProperty) are also available on Tag and on Tagged nodes.

Operations for altering tags and/or removing tagged nodes in bulk:

The Block level

Block-level content is everything that appears below the document level and above the paragraph level.

There are three kinds of block:

Unenforced guideline: The Lines of a Paragraph should contain at least one Line.

BlockTag

A BlockTag is a non-paragraph Block.

The Block type can be described in terms of BlockTag as:

Example: blockTag % filtered (x -> view name x == "h1") is an affine fold that targets blocks with a tag name of "h1".

The Inline level

Inline-level content is everything below the paragraph level.

Inline content is grouped into lines; we specify no particular semantics of line breaks but suggest that a typical consumer of Lines will fold them together with a single space character interspersed between the lines.

There are two kinds of inline:

Unenforced guideline: Each Line should contain at least one Inline.

Fragments

Fragments are all the little scraps of text that serve as the leaves of the document tree.

A fragment may appear at the inline level as a plain Inline, or at the block level as a line of a PlainBlock.

Unenforced guidelines: Fragment text should be non-empty, and it should not contain any line break characters.

Metadata

Documents and tags both have metadata.

Optics:

  • metadata targets the metadata of a node; it is either a prism or an affine traversal, depending on the node type.
  • atSetting and hasProperty target specific parts of metadata by name.
  • The allMetadata traversal targets every metadata at and under a node.

Content

The content of a node is whatever is nested directly under it in the document tree. The content lens is overloaded via the Content type family and HasContent class.

The contents of a node is the type of sequence element most directly nested under it. The contents lens is via the Contents type family and HasContents class.

List of nodes and their content types:

xContent xContents x
DocumentBlocksBlock
BlocksBlock
ParagraphLinesLine
LinesLine
LineInline
PlainBlockFragment
Tagged yyContents y
FragmentText

HasContent and HasContents have type aliases HasContents' and HasContents' respectively for types that only support simple optics.

Fork and plain

At both the block and inline level, a node may be a fork that contains a sequence of more content at the same level, and a node may be plain node that just contains text.

The fork prism is overloaded via the Fork type family and CanFork class. List of nodes and their fork types:

xFork x
BlockTagged Blocks
InlineTagged Lines

The plain prism is overloaded via the Plain type family and CanBePlain class. List of nodes and their plain types:

xPlain x
BlockTagged PlainBlock
InlineFragment

(Block also has a third prism, paragraph, which is neither fork nor plain.)

Annotation

An annotation is attached to every Tag, PlainBlock, Paragraph, Line, and Fragment. The Annotation type may be anything, but its original purpose was to map each component of a document to the location where it appeared in a text file.

Optics:

  • The annotation lens targets a single annotation at a node
  • The allAnnotations traversal targets every annotation at and under a node.

Modules

The ProAbstract module provides everything in the pro-abstract package. There are also some smaller collections of reëxports.

Organized by topic:

Organized by kind of thing:

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.1.0.0-fAo99Omz3u7l2SA6DiDR2" '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

CanBeTagless (Block ann) Source #

Only a paragraph inline 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.1.0.0-fAo99Omz3u7l2SA6DiDR2" 'False) (C1 ('MetaCons "BlockPlain" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Tagged (PlainBlock 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 (Tagged (Blocks 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) = Tagged (Blocks ann)
type Plain (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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 (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 #

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 (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 #

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 (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) #

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 (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

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

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

Defined in ProAbstract.Structure.Block

Methods

rnf :: Blocks ann -> () #

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 #

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

Defined in ProAbstract.Structure.Block

Methods

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

hash :: Blocks ann -> Int #

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

Defined in ProAbstract.Structure.Block

Associated Types

type MetadataOpticKind (Tagged (Blocks ann)) Source #

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

Defined in ProAbstract.Structure.Block

HasManyMetadata (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

HasManyPlainInlines (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

Associated Types

type TagOpticKind (Tagged (Blocks 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 #

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 (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

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 (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyTags (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

HasManyPlainBlocks (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyParagraphs (Tagged (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 (Tagged (Blocks ann)) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

CanHaveTaglessContent (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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 (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 #

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 (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 Rep (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

data Tagged (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Paragraphs

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.1.0.0-fAo99Omz3u7l2SA6DiDR2" '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

Tag blocks

data BlockTag ann Source #

Instances

Instances details
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

type Annotation (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

type Annotation (BlockTag ann) = ann
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) = Tagged (Blocks ann)
type Plain (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

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

Defined in ProAbstract.Structure.BlockTag

Lines

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

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.1.0.0-fAo99Omz3u7l2SA6DiDR2" 'False) (C1 ('MetaCons "InlineFork" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Tagged (Lines 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) = Tagged (Lines 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

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.1.0.0-fAo99Omz3u7l2SA6DiDR2" '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 (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 (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

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

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

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 (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 (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 (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 (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

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

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

Defined in ProAbstract.Structure.Inline

Methods

rnf :: Lines ann -> () #

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 (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

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

hash :: Lines ann -> Int #

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

Defined in ProAbstract.Structure.Inline

Associated Types

type MetadataOpticKind (Tagged (Lines ann)) Source #

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

Defined in ProAbstract.Structure.Inline

HasManyMetadata (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

HasManyPlainInlines (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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 #

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 (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 (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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 (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

CanHaveTaglessContent (Lines ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

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 #

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

Defined in ProAbstract.Structure.Inline

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 #

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 #

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 (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 (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 (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

type Rep (Lines ann) = D1 ('MetaData "Lines" "ProAbstract.Structure.Inline" "pro-abstract-0.1.0.0-fAo99Omz3u7l2SA6DiDR2" '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 (Tagged (Lines ann)) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

data Tagged (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

data Tagged (Lines ann) = TaggedLines {}

Plain text

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.1.0.0-fAo99Omz3u7l2SA6DiDR2" '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

data PlainBlock ann 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 (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Methods

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

(/=) :: PlainBlock ann -> PlainBlock 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 (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 (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 (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 (Tagged (PlainBlock ann)) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Methods

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

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

Defined in ProAbstract.Structure.PlainBlock

Methods

rnf :: PlainBlock 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 (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Methods

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

hash :: PlainBlock ann -> Int #

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

Defined in ProAbstract.Structure.PlainBlock

Associated Types

type MetadataOpticKind (Tagged (PlainBlock ann)) Source #

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

Defined in ProAbstract.Structure.PlainBlock

Associated Types

type TagOpticKind (Tagged (PlainBlock ann)) Source #

CanBeTagless (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

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

CanHaveTaglessContent (Tagged (PlainBlock 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 (PlainBlock ann) (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

HasContents (Tagged (PlainBlock ann)) (Tagged (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 (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 (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

data Tagged (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

class HasManyPlainInlines x where Source #

Instances

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Block

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 (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 (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Tags

data Tag ann Source #

Instances

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

Defined in ProAbstract.Tag.TagType

Methods

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

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

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

Defined in ProAbstract.Tag.TagType

Methods

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

show :: Tag ann -> String #

showList :: [Tag ann] -> ShowS #

Generic (Tag ann) Source # 
Instance details

Defined in ProAbstract.Tag.TagType

Associated Types

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

Methods

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

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

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

Defined in ProAbstract.Tag.TagType

Methods

rnf :: Tag ann -> () #

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

Defined in ProAbstract.Tag.TagType

Methods

hashWithSalt :: Int -> Tag ann -> Int #

hash :: Tag ann -> Int #

HasMetadata (Tag ann) Source # 
Instance details

Defined in ProAbstract.Tag.TagType

Associated Types

type MetadataOpticKind (Tag ann) Source #

HasTag (Tag ann) Source # 
Instance details

Defined in ProAbstract.Tag.HasTag

Associated Types

type TagOpticKind (Tag ann) Source #

Methods

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

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

Defined in ProAbstract.Tag.TagType

Methods

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

type Rep (Tag ann) Source # 
Instance details

Defined in ProAbstract.Tag.TagType

type Rep (Tag ann) = D1 ('MetaData "Tag" "ProAbstract.Tag.TagType" "pro-abstract-0.1.0.0-fAo99Omz3u7l2SA6DiDR2" 'False) (C1 ('MetaCons "Tag" 'PrefixI 'True) (S1 ('MetaSel ('Just "tagName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: (S1 ('MetaSel ('Just "tagMetadata") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Metadata) :*: S1 ('MetaSel ('Just "tagAnnotation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann))))
type Annotation (Tag ann) Source # 
Instance details

Defined in ProAbstract.Tag.TagType

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

Defined in ProAbstract.Tag.TagType

type TagOpticKind (Tag ann) Source # 
Instance details

Defined in ProAbstract.Tag.HasTag

type TagOpticKind (Tag ann) = A_Lens

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

class HasTag x where Source #

Associated Types

type TagOpticKind x :: OpticKind Source #

Instances

Instances details
HasTag (Tag ann) Source # 
Instance details

Defined in ProAbstract.Tag.HasTag

Associated Types

type TagOpticKind (Tag ann) Source #

Methods

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

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 #

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 #

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 #

HasTag (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Associated Types

type TagOpticKind (BlockTag ann) Source #

Traversal

class HasManyTags x where Source #

Instances

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Block

HasManyTags (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyTags (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyTags (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyTags (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

HasManyTags (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyTags (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyTags (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

HasManyTags (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

class HasManyTags x => HasManyBlockTags x where Source #

Instances

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

Defined in ProAbstract.Structure.Block

HasManyBlockTags (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyBlockTags (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyBlockTags (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

Withering

class HasWitherableTags x where Source #

Minimal complete definition

witherTags

Methods

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

mapMaybeTags :: (Tag (Annotation x) -> Maybe (Tag (Annotation x))) -> x -> x Source #

Instances

Instances details
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 #

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 #

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 #

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 #

class HasManyTags x => HasWitherableInlineTags x where Source #

Minimal complete definition

witherInlineTags

Methods

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

mapMaybeInlineTags :: (Tag (Annotation x) -> Maybe (Tag (Annotation x))) -> x -> x Source #

Instances

Instances details
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 #

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 #

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 #

HasWitherableInlineTags (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

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 #

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 #

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 #

class HasManyBlockTags x => HasWitherableBlockTags x where Source #

Minimal complete definition

witherBlockTags

Methods

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

mapMaybeBlockTags :: (Tag (Annotation x) -> Maybe (Tag (Annotation x))) -> x -> x Source #

Instances

Instances details
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 #

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 #

Prisms

Plain

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)

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 (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Methods

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

Fork

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)

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 (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Methods

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

Paragraph

Metadata

data Metadata Source #

A set of properties and settings, associated with a document or tag.

The namespaces of properties and settings are distinct; a property can share a name with a setting without conflict.

Instances

Instances details
Eq Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.MetadataType

Show Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.MetadataType

Generic Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.MetadataType

Associated Types

type Rep Metadata :: Type -> Type #

Methods

from :: Metadata -> Rep Metadata x #

to :: Rep Metadata x -> Metadata #

Semigroup Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.MetadataType

Monoid Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.MetadataType

NFData Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.MetadataType

Methods

rnf :: Metadata -> () #

Hashable Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.MetadataType

Methods

hashWithSalt :: Int -> Metadata -> Int #

hash :: Metadata -> Int #

HasMetadata Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.HasMetadata

Associated Types

type MetadataOpticKind Metadata Source #

type Rep Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.MetadataType

type Rep Metadata = D1 ('MetaData "Metadata" "ProAbstract.Metadata.MetadataType" "pro-abstract-0.1.0.0-fAo99Omz3u7l2SA6DiDR2" 'False) (C1 ('MetaCons "Metadata" 'PrefixI 'True) (S1 ('MetaSel ('Just "metadataProperties") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set Text)) :*: S1 ('MetaSel ('Just "metadataSettings") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map Text Text))))
type MetadataOpticKind Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.HasMetadata

class HasMetadata x where Source #

Associated Types

type MetadataOpticKind x Source #

Instances

Instances details
HasMetadata Metadata Source # 
Instance details

Defined in ProAbstract.Metadata.HasMetadata

Associated Types

type MetadataOpticKind Metadata Source #

HasMetadata (Tag ann) Source # 
Instance details

Defined in ProAbstract.Tag.TagType

Associated Types

type MetadataOpticKind (Tag ann) Source #

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 #

HasMetadata (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type MetadataOpticKind (Inline ann) Source #

HasMetadata (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type MetadataOpticKind (Block ann) Source #

HasMetadata (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

Associated Types

type MetadataOpticKind (Document ann) Source #

HasMetadata (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Associated Types

type MetadataOpticKind (BlockTag ann) Source #

class HasManyMetadata x where Source #

Instances

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Block

HasManyMetadata (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyMetadata (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyMetadata (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyMetadata (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

HasManyMetadata (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyMetadata (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyMetadata (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

HasManyMetadata (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Properties

properties :: (HasMetadata m, JoinKinds (MetadataOpticKind m) A_Lens k) => Optic' k NoIx m (Set Text) Source #

Fetch all properties from items which contain metadata.

hasProperty :: (HasMetadata m, JoinKinds (MetadataOpticKind m) A_Lens k) => Text -> Optic' k NoIx m Bool Source #

Check if a property is attached to an item with metadata. Using this optic as a setter will add a property if set to True and remove the property when set to False.

Settings

settings :: (HasMetadata m, JoinKinds (MetadataOpticKind m) A_Lens k) => Optic' k NoIx m (Map Text Text) Source #

Fetch all settings defined on items which contain metadata.

atSetting :: (HasMetadata m, JoinKinds (MetadataOpticKind m) A_Lens k) => Text -> Optic' k NoIx m (Maybe Text) Source #

Select a setting from an item attached to metadata. Returns Nothing if no value is set.

Content

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

class HasContent x x' where Source #

Methods

content :: Lens x x' (Content x) (Content x') Source #

Instances

Instances details
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 #

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 #

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 #

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 #

Contents

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

class HasContents x x' where Source #

Methods

contents :: Lens x x' (Seq (Contents x)) (Seq (Contents x')) Source #

Instances

Instances details
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 #

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

Defined in ProAbstract.Structure.PlainBlock

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 #

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 #

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 #

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 #

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 #

Annotation

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

class HasAnnotation x x' where Source #

Methods

annotation :: Lens x x' (Annotation x) (Annotation x') Source #

Instances

Instances details
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 #

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

Defined in ProAbstract.Tag.TagType

Methods

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

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

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

Defined in ProAbstract.Structure.PlainBlock

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 #

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 #

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

Defined in ProAbstract.Structure.Paragraph

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 #

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

Defined in ProAbstract.Structure.BlockTag

class HasManyAnnotations x x' where Source #

Instances

Instances details
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

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

Defined in ProAbstract.Structure.PlainBlock

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 #

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 #

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Paragraph

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

Defined in ProAbstract.Structure.Block

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 #

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

Defined in ProAbstract.Structure.Document

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

Defined in ProAbstract.Structure.BlockTag

Tagless content

class CanBeTagless a where Source #

Methods

tagless :: KindOfText txt -> AffineFold a txt Source #

Instances

Instances details
CanBeTagless (Fragment ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

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

CanBeTagless (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

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

CanBeTagless (Lines ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

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

CanBeTagless (Line ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

tagless :: KindOfText txt -> AffineFold (Line ann) txt 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 #

CanBeTagless (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

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

CanBeTagless (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

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

CanBeTagless (Block ann) Source #

Only a paragraph inline 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 #

class CanHaveTaglessContent a where Source #

Instances

Instances details
CanHaveTaglessContent (Fragment ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

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

CanHaveTaglessContent (Lines ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

CanHaveTaglessContent (Line ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

CanHaveTaglessContent (Inline ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

CanHaveTaglessContent (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

CanHaveTaglessContent (Block ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

CanHaveTaglessContent (Document ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

CanHaveTaglessContent (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent