pro-abstract-0.3.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.

Optics:

  • tag targets the tag at a node; it is either a lens 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:

Example: mapMaybeTags (preview (filtered \x -> view name x /= "comment")) is an endofunction that removes all nodes having a tag name of "comment".

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: tagged % filtered (x -> view name x == "h1") is an affine fold that targets blocks with a tag name of "h1".

The BlockTag type can also be described as:

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 lens 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.
  • metaMap gives properties and settings combined into a single Map Text MetaValue
  • metaList gives properties and settings combined into a list of MetaItem

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
TaggedBlocksBlocksBlock
BlocksBlock
BlockTagBlockTagContent
TaggedPlainBlockPlainBlockFragment
PlainBlockFragment
ParagraphLinesLine
TaggedLinesLinesLine
LinesLine
LineInline
FragmentText

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

Tagged or bare

At both the block and inline level, a node is either tagged or bare, a fact manifested by the taggedOrBare isomorphism of the IsTaggedOrBare class.

The tagged prism is overloaded via the TaggedType type family, and the bare prism is overloaded via the BareType family.

List of nodes and their tagged/bare types:

xTaggedType xBareType x
BlockBlockTagParagraph
InlineTaggedLinesFragment

Fork or 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.

The plain prism is overloaded via the Plain type family and CanBePlain class.

List of nodes and their fork/plain types:

xFork xPlain x
BlockTaggedBlocksTaggedPlainBlock
BlockTagTaggedBlocksTaggedPlainBlock
BlockTagContentBlocksPlainBlock
InlineTaggedLinesFragment

(Block also has a third prism, bare, 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.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'False) (C1 ('MetaCons "Document" 'PrefixI 'True) (S1 ('MetaSel ('Just "documentMetadata") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Metadata) :*: S1 ('MetaSel ('Just "documentContent") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Blocks ann))))
type Annotation (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

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

Defined in ProAbstract.Structure.Document

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

Defined in ProAbstract.Structure.Document

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

Defined in ProAbstract.Structure.Document

Blocks

data Block ann Source #

Instances

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

Defined in ProAbstract.Structure.Block

Methods

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

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

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

Defined in ProAbstract.Structure.Block

Methods

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

show :: Block ann -> String #

showList :: [Block ann] -> ShowS #

Generic (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

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

Methods

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

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

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

Defined in ProAbstract.Structure.Block

Methods

rnf :: Block ann -> () #

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

Defined in ProAbstract.Structure.Block

Methods

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

hash :: Block ann -> Int #

HasMetadata (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type MetadataOpticKind (Block ann) Source #

HasManyMetadata (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

CanFork (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

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

HasManyPlainInlines (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

CanBePlain (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

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

HasTag (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type TagOpticKind (Block ann) Source #

Methods

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

HasWitherableInlineTags (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

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

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

HasManyBlockTags (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyTags (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainBlocks (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyParagraphs (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

IsTaggedOrBare (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.IsTaggedOrBare

Associated Types

type TaggedType (Block ann) Source #

type BareType (Block ann) Source #

Methods

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

CanBeTagless (Block ann) Source #

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

Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

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

CanHaveTaglessContent (Block ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

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

Defined in ProAbstract.Structure.Block

Methods

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

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

Defined in ProAbstract.Structure.Block

Methods

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

type Rep (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

type Fork (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

type TaggedType (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.IsTaggedOrBare

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

Defined in ProAbstract.Structure.IsTaggedOrBare

type BareType (Block ann) = Paragraph ann

newtype Blocks ann Source #

Constructors

Blocks (Seq (Block ann))

content

Instances

Instances details
IsList (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type Item (Blocks ann) #

Methods

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

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

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

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

Defined in ProAbstract.Structure.Block

Methods

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

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

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

Defined in ProAbstract.Structure.Block

Methods

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

show :: Blocks ann -> String #

showList :: [Blocks ann] -> ShowS #

Generic (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

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

Methods

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

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

Semigroup (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

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

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

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

Monoid (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

mempty :: Blocks ann #

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

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

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

Defined in ProAbstract.Structure.Block

Methods

rnf :: Blocks ann -> () #

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

Defined in ProAbstract.Structure.Block

Methods

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

hash :: Blocks ann -> Int #

HasManyMetadata (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainInlines (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasWitherableInlineTags (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

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

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

HasWitherableBlockTags (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

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

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

HasManyBlockTags (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasWitherableTags (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

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

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

HasManyTags (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainBlocks (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyParagraphs (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

CanBeTagless (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

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

CanHaveTaglessContent (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

Methods

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

type Rep (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

type Contents (Blocks ann) = Block ann

data TaggedBlocks ann Source #

Constructors

TaggedBlocks 

Instances

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

Defined in ProAbstract.Structure.Block

Methods

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

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

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

Defined in ProAbstract.Structure.Block

Generic (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

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

Methods

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

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

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

Defined in ProAbstract.Structure.Block

Methods

rnf :: TaggedBlocks ann -> () #

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

Defined in ProAbstract.Structure.Block

Methods

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

hash :: TaggedBlocks ann -> Int #

HasMetadata (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type MetadataOpticKind (TaggedBlocks ann) Source #

HasManyMetadata (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainInlines (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasTag (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type TagOpticKind (TaggedBlocks ann) Source #

HasWitherableInlineTags (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyBlockTags (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyTags (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainBlocks (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyParagraphs (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

CanHaveTaglessContent (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

type Rep (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

type TagOpticKind (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

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.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'False) (C1 ('MetaCons "Paragraph" 'PrefixI 'True) (S1 ('MetaSel ('Just "paragraphContent") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Lines ann)) :*: S1 ('MetaSel ('Just "paragraphAnnotation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann)))
type Annotation (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

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

Defined in ProAbstract.Structure.Paragraph

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

Defined in ProAbstract.Structure.Paragraph

type Contents (Paragraph ann) = Line ann

Tag blocks

data BlockTag ann Source #

Instances

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

Defined in ProAbstract.Structure.BlockTag

Methods

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

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

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

Defined in ProAbstract.Structure.BlockTag

Methods

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

show :: BlockTag ann -> String #

showList :: [BlockTag ann] -> ShowS #

Generic (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Associated Types

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

Methods

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

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

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

Defined in ProAbstract.Structure.BlockTag

Methods

rnf :: BlockTag ann -> () #

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

Defined in ProAbstract.Structure.BlockTag

Methods

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

hash :: BlockTag ann -> Int #

HasMetadata (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Associated Types

type MetadataOpticKind (BlockTag ann) Source #

HasManyMetadata (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

CanFork (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Methods

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

HasManyPlainInlines (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

CanBePlain (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Methods

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

HasTag (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Associated Types

type TagOpticKind (BlockTag ann) Source #

HasManyTags (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

HasManyPlainBlocks (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

HasManyParagraphs (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

CanHaveTaglessContent (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

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

Defined in ProAbstract.Structure.BlockTag

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

Defined in ProAbstract.Structure.BlockTag

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

Defined in ProAbstract.Structure.BlockTag

Methods

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

type Rep (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

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

Defined in ProAbstract.Structure.BlockTag

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

Defined in ProAbstract.Structure.BlockTag

type MetadataOpticKind (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

type Fork (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

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

Defined in ProAbstract.Structure.BlockTag

type TagOpticKind (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

data BlockTagContent ann Source #

Instances

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

Defined in ProAbstract.Structure.BlockTagContent

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

Defined in ProAbstract.Structure.BlockTagContent

Generic (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

Associated Types

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

Methods

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

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

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

Defined in ProAbstract.Structure.BlockTagContent

Methods

rnf :: BlockTagContent ann -> () #

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

Defined in ProAbstract.Structure.BlockTagContent

HasManyMetadata (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

CanFork (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasManyPlainInlines (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

CanBePlain (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasWitherableInlineTags (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasWitherableBlockTags (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasManyBlockTags (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasWitherableTags (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasManyTags (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasManyPlainBlocks (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasManyParagraphs (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

CanBeTagless (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

CanHaveTaglessContent (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

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

Defined in ProAbstract.Structure.BlockTagContent

type Rep (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

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

Defined in ProAbstract.Structure.BlockTagContent

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

Defined in ProAbstract.Structure.BlockTagContent

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

Defined in ProAbstract.Structure.BlockTagContent

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

IsTaggedOrBare (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.IsTaggedOrBare

Associated Types

type TaggedType (Inline ann) Source #

type BareType (Inline ann) Source #

CanBeTagless (Inline ann) Source #

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

Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

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

CanHaveTaglessContent (Inline ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

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

Defined in ProAbstract.Structure.Inline

Methods

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

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

Defined in ProAbstract.Structure.Inline

type Rep (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

type Fork (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

type TaggedType (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.IsTaggedOrBare

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

Defined in ProAbstract.Structure.IsTaggedOrBare

type BareType (Inline ann) = Fragment ann

data Line ann Source #

Instances

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

Defined in ProAbstract.Structure.Inline

Associated Types

type Item (Line ()) #

Methods

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

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

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

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

Defined in ProAbstract.Structure.Inline

Methods

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

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

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

Defined in ProAbstract.Structure.Inline

Methods

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

show :: Line ann -> String #

showList :: [Line ann] -> ShowS #

Generic (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

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

Methods

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

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

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

Defined in ProAbstract.Structure.Inline

Methods

rnf :: Line ann -> () #

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

Defined in ProAbstract.Structure.Inline

Methods

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

hash :: Line ann -> Int #

HasManyMetadata (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyPlainInlines (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasWitherableInlineTags (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

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

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

HasWitherableTags (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

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

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

HasManyTags (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

CanBeTagless (Line ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

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

CanHaveTaglessContent (Line ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

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

Defined in ProAbstract.Structure.Inline

Methods

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

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

Defined in ProAbstract.Structure.Inline

Methods

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

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

Defined in ProAbstract.Structure.Inline

Methods

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

type Rep (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

type Contents (Line ann) = Inline ann

newtype Lines ann Source #

Constructors

Lines (Seq (Line ann))

contentsSeq

Instances

Instances details
IsList (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type Item (Lines ann) #

Methods

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

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

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

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

Defined in ProAbstract.Structure.Inline

Methods

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

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

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

Defined in ProAbstract.Structure.Inline

Methods

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

show :: Lines ann -> String #

showList :: [Lines ann] -> ShowS #

Generic (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

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

Methods

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

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

Semigroup (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

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

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

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

Monoid (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

mempty :: Lines ann #

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

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

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

Defined in ProAbstract.Structure.Inline

Methods

rnf :: Lines ann -> () #

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

Defined in ProAbstract.Structure.Inline

Methods

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

hash :: Lines ann -> Int #

HasManyMetadata (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyPlainInlines (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasWitherableInlineTags (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

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

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

HasWitherableTags (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

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

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

HasManyTags (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

CanBeTagless (Lines ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

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

CanHaveTaglessContent (Lines ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

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

Defined in ProAbstract.Structure.Inline

Methods

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

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

Defined in ProAbstract.Structure.Inline

Methods

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

type Rep (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

type Contents (Lines ann) = Line ann

data TaggedLines ann Source #

Constructors

TaggedLines 

Instances

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

Defined in ProAbstract.Structure.Inline

Methods

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

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

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

Defined in ProAbstract.Structure.Inline

Methods

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

show :: TaggedLines ann -> String #

showList :: [TaggedLines ann] -> ShowS #

Generic (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

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

Methods

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

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

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

Defined in ProAbstract.Structure.Inline

Methods

rnf :: TaggedLines ann -> () #

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

Defined in ProAbstract.Structure.Inline

Methods

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

hash :: TaggedLines ann -> Int #

HasMetadata (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type MetadataOpticKind (TaggedLines ann) Source #

HasManyMetadata (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyPlainInlines (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasTag (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type TagOpticKind (TaggedLines ann) Source #

HasWitherableInlineTags (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyTags (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

CanHaveTaglessContent (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

type Rep (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Inline

type TagOpticKind (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'False) (C1 ('MetaCons "Fragment" 'PrefixI 'True) (S1 ('MetaSel ('Just "fragmentText") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "fragmentAnnotation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ann)))
type Annotation (Fragment ann) Source # 
Instance details

Defined in ProAbstract.Structure.Fragment

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

Defined in ProAbstract.Structure.Fragment

type Content (Fragment ann) = Text

data PlainBlock ann Source #

Instances

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

Defined in ProAbstract.Structure.PlainBlock

Methods

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

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

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

Defined in ProAbstract.Structure.PlainBlock

Methods

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

show :: PlainBlock ann -> String #

showList :: [PlainBlock ann] -> ShowS #

Generic (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Associated Types

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

Methods

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

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

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

Defined in ProAbstract.Structure.PlainBlock

Methods

rnf :: PlainBlock ann -> () #

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

Defined in ProAbstract.Structure.PlainBlock

Methods

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

hash :: PlainBlock ann -> Int #

CanBeTagless (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

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

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

type Rep (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

type Contents (PlainBlock ann) = Fragment ann

data TaggedPlainBlock ann Source #

Instances

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

Generic (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Associated Types

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

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

Defined in ProAbstract.Structure.PlainBlock

Methods

rnf :: TaggedPlainBlock ann -> () #

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

Defined in ProAbstract.Structure.PlainBlock

HasMetadata (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Associated Types

type MetadataOpticKind (TaggedPlainBlock ann) Source #

HasTag (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Associated Types

type TagOpticKind (TaggedPlainBlock ann) Source #

CanHaveTaglessContent (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

type Rep (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

type Contents (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type MetadataOpticKind (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type TagOpticKind (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

class HasManyPlainInlines x where Source #

Instances

Instances details
HasManyPlainInlines (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyPlainInlines (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyPlainInlines (Line ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyPlainInlines (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

HasManyPlainInlines (Paragraph ann) Source # 
Instance details

Defined in ProAbstract.Structure.Paragraph

HasManyPlainInlines (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainInlines (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainInlines (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

HasManyPlainInlines (Document ann) Source # 
Instance details

Defined in ProAbstract.Structure.Document

HasManyPlainInlines (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

HasManyPlainInlines (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

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.3.0.0-CFjEApBZPUR1EoNCheWNFg" '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

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

Defined in ProAbstract.Structure.PlainBlock

Associated Types

type TagOpticKind (TaggedPlainBlock ann) Source #

HasTag (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type TagOpticKind (TaggedLines 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 (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type TagOpticKind (TaggedBlocks 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 (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.BlockTagContent

HasManyTags (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

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 #

HasWitherableTags (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

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

Defined in ProAbstract.Structure.Inline

HasWitherableInlineTags (Lines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

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

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

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

Defined in ProAbstract.Structure.Block

HasWitherableInlineTags (Blocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

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

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

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 #

HasWitherableInlineTags (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

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 #

Prisms

Plain/fork

type family Plain a Source #

Instances

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.BlockTagContent

type Plain (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

class CanBePlain x where Source #

Methods

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

Instances

Instances details
CanBePlain (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

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

CanBePlain (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

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

CanBePlain (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

CanBePlain (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Methods

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

type family Fork a Source #

Instances

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.BlockTagContent

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

Defined in ProAbstract.Structure.BlockTag

type Fork (BlockTag ann) = TaggedBlocks ann

class CanFork x where Source #

Methods

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

Instances

Instances details
CanFork (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Methods

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

CanFork (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Methods

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

CanFork (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

CanFork (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTag

Methods

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

Tagged/bare

class IsTaggedOrBare a where Source #

Associated Types

type TaggedType a Source #

type BareType a Source #

Instances

Instances details
IsTaggedOrBare (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.IsTaggedOrBare

Associated Types

type TaggedType (Inline ann) Source #

type BareType (Inline ann) Source #

IsTaggedOrBare (Block ann) Source # 
Instance details

Defined in ProAbstract.Structure.IsTaggedOrBare

Associated Types

type TaggedType (Block ann) Source #

type BareType (Block ann) Source #

Methods

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

IsTaggedOrBare (TaggedOrBare a) Source # 
Instance details

Defined in ProAbstract.Structure.IsTaggedOrBare

Associated Types

type TaggedType (TaggedOrBare a) Source #

type BareType (TaggedOrBare a) Source #

data TaggedOrBare a Source #

Constructors

IsTagged (TaggedType a) 
IsBare (BareType a) 

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.3.0.0-CFjEApBZPUR1EoNCheWNFg" '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 (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

Associated Types

type MetadataOpticKind (TaggedPlainBlock ann) Source #

HasMetadata (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type MetadataOpticKind (TaggedLines ann) Source #

HasMetadata (Inline ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

Associated Types

type MetadataOpticKind (Inline ann) Source #

HasMetadata (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

Associated Types

type MetadataOpticKind (TaggedBlocks 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 (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.BlockTagContent

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.

Item list

data MetaItem Source #

Constructors

Property Text

key

Setting 

Fields

Instances

Instances details
Eq MetaItem Source # 
Instance details

Defined in ProAbstract.Metadata.MetaItem

Ord MetaItem Source # 
Instance details

Defined in ProAbstract.Metadata.MetaItem

Show MetaItem Source # 
Instance details

Defined in ProAbstract.Metadata.MetaItem

Generic MetaItem Source # 
Instance details

Defined in ProAbstract.Metadata.MetaItem

Associated Types

type Rep MetaItem :: Type -> Type #

Methods

from :: MetaItem -> Rep MetaItem x #

to :: Rep MetaItem x -> MetaItem #

NFData MetaItem Source # 
Instance details

Defined in ProAbstract.Metadata.MetaItem

Methods

rnf :: MetaItem -> () #

Hashable MetaItem Source # 
Instance details

Defined in ProAbstract.Metadata.MetaItem

Methods

hashWithSalt :: Int -> MetaItem -> Int #

hash :: MetaItem -> Int #

type Rep MetaItem Source # 
Instance details

Defined in ProAbstract.Metadata.MetaItem

type Rep MetaItem = D1 ('MetaData "MetaItem" "ProAbstract.Metadata.MetaItem" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'False) (C1 ('MetaCons "Property" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: C1 ('MetaCons "Setting" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

Value map

data MetaValue Source #

Instances

Instances details
Eq MetaValue Source # 
Instance details

Defined in ProAbstract.Metadata.MetaValue

Ord MetaValue Source # 
Instance details

Defined in ProAbstract.Metadata.MetaValue

Show MetaValue Source # 
Instance details

Defined in ProAbstract.Metadata.MetaValue

Generic MetaValue Source # 
Instance details

Defined in ProAbstract.Metadata.MetaValue

Associated Types

type Rep MetaValue :: Type -> Type #

Semigroup MetaValue Source # 
Instance details

Defined in ProAbstract.Metadata.MetaValue

NFData MetaValue Source # 
Instance details

Defined in ProAbstract.Metadata.MetaValue

Methods

rnf :: MetaValue -> () #

Hashable MetaValue Source # 
Instance details

Defined in ProAbstract.Metadata.MetaValue

type Rep MetaValue Source # 
Instance details

Defined in ProAbstract.Metadata.MetaValue

type Rep MetaValue = D1 ('MetaData "MetaValue" "ProAbstract.Metadata.MetaValue" "pro-abstract-0.3.0.0-CFjEApBZPUR1EoNCheWNFg" 'False) (C1 ('MetaCons "MetaValue_Property" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MetaValue_Setting" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: C1 ('MetaCons "MetaValue_PropertyAndSetting" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))))

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

Defined in ProAbstract.Structure.PlainBlock

type Content (TaggedLines ann) Source # 
Instance details

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Paragraph

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Document

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

Defined in ProAbstract.Structure.BlockTag

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Block

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 #

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

Defined in ProAbstract.Structure.BlockTag

Methods

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

Contents

type family Contents a Source #

Instances

Instances details
type Contents (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

type Contents (PlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.Inline

type Contents (TaggedLines ann) = Line 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 (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Contents (TaggedBlocks ann) = Block 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 (TaggedPlainBlock ann) (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.Block

Methods

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

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.Inline

type Annotation (TaggedLines 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 (TaggedBlocks ann) Source # 
Instance details

Defined in ProAbstract.Structure.Block

type Annotation (TaggedBlocks 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 (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Structure.BlockTagContent

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.Inline

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.PlainBlock

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

Defined in ProAbstract.Structure.PlainBlock

HasManyAnnotations (TaggedLines ann) (TaggedLines 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 #

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

Defined in ProAbstract.Structure.Block

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

Defined in ProAbstract.Structure.BlockTagContent

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 bare block is considered to be plain text, because fork and plain blocks have tags.

Instance details

Defined in ProAbstract.Tagless.CanBeTagless

Methods

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

CanBeTagless (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanBeTagless

class CanHaveTaglessContent a where Source #

Instances

Instances details
CanHaveTaglessContent (Fragment ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

CanHaveTaglessContent (TaggedPlainBlock ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

CanHaveTaglessContent (TaggedLines 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 (TaggedBlocks 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 (BlockTagContent ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent

CanHaveTaglessContent (BlockTag ann) Source # 
Instance details

Defined in ProAbstract.Tagless.CanHaveTaglessContent