pup-0.1.1: Invertible format descriptors
Safe HaskellNone
LanguageGHC2021

Text.Pup.Backend.Prettyprinter

Description

This module defines a Prettyprinter backend for format descriptors.

Synopsis

Concrete backend

newtype Backend ann r r' a Source #

e is a phantom type for the parse error type. This is required by the functional dependency on MonadParsec.

Constructors

Backend (Cont2W (Traced (Doc ann)) r r' a) 

Instances

Instances details
Annotations ann (Backend ann :: Type -> Type -> Type -> Type) Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

annotate :: ann -> Backend ann r r' a -> Backend ann r r' a Source #

Fail (Backend ann :: Type -> Type -> Type -> Type) Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

fail :: String -> Backend ann i j a #

Tokens Char Text (Backend ann) Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

eof :: Backend ann r r () Source #

single :: Char -> Backend ann r r Char Source #

satisfy :: (Char -> Bool) -> Backend ann (Char -> r) r Char Source #

tokens :: (Text -> Text -> Bool) -> Text -> Backend ann (Text -> r) r Text Source #

takeWhileP :: Maybe String -> (Char -> Bool) -> Backend ann (Text -> r) r Text Source #

takeWhile1P :: Maybe String -> (Char -> Bool) -> Backend ann (Text -> r) r Text Source #

takeP :: Maybe String -> Int -> Backend ann (Text -> r) r Text Source #

label :: String -> Backend ann r r' a -> Backend ann r r' a Source #

hidden :: Backend ann r r' a -> Backend ann r r' a Source #

MonadParsec Text (Backend ann) Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

try :: Backend ann r r' a -> Backend ann r r' a Source #

token :: (Token Text -> Maybe a) -> Set (ErrorItem (Token Text)) -> (a -> Token Text) -> Backend ann (a -> r) r a Source #

Breaks (Backend ann :: Type -> Type -> Type -> Type) Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

space :: Backend ann r r () Source #

space1 :: Backend ann r r () Source #

hardline :: Backend ann r r () Source #

ParseErrors e' (Backend ann) Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

parseError :: e' -> Backend ann r r' a Source #

withRecovery :: (e' -> Backend ann r r' a) -> Backend ann r r' a -> Backend ann r r' a Source #

observing :: Backend ann (b -> r) r a -> Backend ann (Either e' b -> r) r (Either e' a) Source #

WadlerLeijen (Backend ann :: Type -> Type -> Type -> Type) Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

group :: Backend ann r r' a -> Backend ann r r' a Source #

nest :: Int -> Backend ann r r' a -> Backend ann r r' a Source #

Applicative (Backend ann :: Type -> Type -> Type -> Type) Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

pure :: a -> Backend ann i i a #

(<*>) :: Backend ann i j (a -> b) -> Backend ann j k1 a -> Backend ann i k1 b #

liftA2 :: (a -> b -> c) -> Backend ann i j a -> Backend ann j k1 b -> Backend ann i k1 c #

(*>) :: Backend ann i j a -> Backend ann j k1 b -> Backend ann i k1 b #

(<*) :: Backend ann i j a -> Backend ann j k1 b -> Backend ann i k1 a #

Monad (Backend ann :: Type -> Type -> Type -> Type) Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

(>>=) :: Backend ann i j a -> (a -> Backend ann j k1 b) -> Backend ann i k1 b #

LookAhead (Backend ann) Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

lookAhead :: Backend ann (a -> r) r a -> Backend ann (a -> r) r a Source #

notFollowedBy :: Backend ann r r a -> Backend ann r r () Source #

Shifty (Backend ann) Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

shift :: ((a -> r' -> r') -> r -> Backend ann r k k) -> Backend ann r r' a #

Stacked (Backend ann) Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

shift_ :: ((r' -> r') -> r -> Backend ann r r'' r'') -> Backend ann r r' () #

Alternative (Backend ann r r) Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

empty :: Backend ann r r a #

(<|>) :: Backend ann r r a -> Backend ann r r a -> Backend ann r r a #

some :: Backend ann r r a -> Backend ann r r [a] #

many :: Backend ann r r a -> Backend ann r r [a] #

Applicative (Backend ann r r) Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

pure :: a -> Backend ann r r a #

(<*>) :: Backend ann r r (a -> b) -> Backend ann r r a -> Backend ann r r b #

liftA2 :: (a -> b -> c) -> Backend ann r r a -> Backend ann r r b -> Backend ann r r c #

(*>) :: Backend ann r r a -> Backend ann r r b -> Backend ann r r b #

(<*) :: Backend ann r r a -> Backend ann r r b -> Backend ann r r a #

Functor (Backend ann r r') Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

fmap :: (a -> b) -> Backend ann r r' a -> Backend ann r r' b #

(<$) :: a -> Backend ann r r' b -> Backend ann r r' a #

Monad (Backend ann r r) Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

(>>=) :: Backend ann r r a -> (a -> Backend ann r r b) -> Backend ann r r b #

(>>) :: Backend ann r r a -> Backend ann r r b -> Backend ann r r b #

return :: a -> Backend ann r r a #

MonadPlus (Backend ann r r) Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

mzero :: Backend ann r r a #

mplus :: Backend ann r r a -> Backend ann r r a -> Backend ann r r a #

Additive (Backend ann r r' a) Source # 
Instance details

Defined in Text.Pup.Backend.Prettyprinter

Methods

empty :: Backend ann r r' a #

(<|>) :: Backend ann r r' a -> Backend ann r r' a -> Backend ann r r' a #

run :: forall a b ann. Backend ann (a -> Maybe (Doc ann)) (Maybe (Doc ann)) b -> a -> Maybe (Doc ann) Source #

tell :: Doc ann -> Backend ann r r () Source #

modify :: (Doc ann -> Doc ann) -> Backend ann r r' a -> Backend ann r r' a Source #

Re-exports