{-# LANGUAGE CPP               #-}
{-# LANGUAGE OverloadedStrings #-}

#include "version-compatibility-macros.h"

-- | Common symbols composed out of the ASCII subset of Unicode. For non-ASCII
-- symbols, see "Prettyprinter.Symbols.Unicode".
module Prettyprinter.Symbols.Ascii where



import Prettyprinter.Internal



-- | >>> squotes "·"
-- '·'
squotes :: Doc ann -> Doc ann
squotes :: forall ann. Doc ann -> Doc ann
squotes = Doc ann -> Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann -> Doc ann
enclose Doc ann
forall ann. Doc ann
squote Doc ann
forall ann. Doc ann
squote

-- | >>> dquotes "·"
-- "·"
dquotes :: Doc ann -> Doc ann
dquotes :: forall ann. Doc ann -> Doc ann
dquotes = Doc ann -> Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann -> Doc ann
enclose Doc ann
forall ann. Doc ann
dquote Doc ann
forall ann. Doc ann
dquote

-- | >>> parens "·"
-- (·)
parens :: Doc ann -> Doc ann
parens :: forall ann. Doc ann -> Doc ann
parens = Doc ann -> Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann -> Doc ann
enclose Doc ann
forall ann. Doc ann
lparen Doc ann
forall ann. Doc ann
rparen

-- | >>> angles "·"
-- <·>
angles :: Doc ann -> Doc ann
angles :: forall ann. Doc ann -> Doc ann
angles = Doc ann -> Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann -> Doc ann
enclose Doc ann
forall ann. Doc ann
langle Doc ann
forall ann. Doc ann
rangle

-- | >>> brackets "·"
-- [·]
brackets :: Doc ann -> Doc ann
brackets :: forall ann. Doc ann -> Doc ann
brackets = Doc ann -> Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann -> Doc ann
enclose Doc ann
forall ann. Doc ann
lbracket Doc ann
forall ann. Doc ann
rbracket

-- | >>> braces "·"
-- {·}
braces :: Doc ann -> Doc ann
braces :: forall ann. Doc ann -> Doc ann
braces = Doc ann -> Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann -> Doc ann
enclose Doc ann
forall ann. Doc ann
lbrace Doc ann
forall ann. Doc ann
rbrace

-- | >>> squote
-- '
squote :: Doc ann
squote :: forall ann. Doc ann
squote = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
'\''

-- | >>> dquote
-- "
dquote :: Doc ann
dquote :: forall ann. Doc ann
dquote = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
'"'

-- | >>> lparen
-- (
lparen :: Doc ann
lparen :: forall ann. Doc ann
lparen = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
'('

-- | >>> rparen
-- )
rparen :: Doc ann
rparen :: forall ann. Doc ann
rparen = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
')'

-- | >>> langle
-- <
langle :: Doc ann
langle :: forall ann. Doc ann
langle = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
'<'

-- | >>> rangle
-- >
rangle :: Doc ann
rangle :: forall ann. Doc ann
rangle = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
'>'

-- | >>> lbracket
-- [
lbracket :: Doc ann
lbracket :: forall ann. Doc ann
lbracket = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
'['
-- | >>> rbracket
-- ]
rbracket :: Doc ann
rbracket :: forall ann. Doc ann
rbracket = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
']'

-- | >>> lbrace
-- {
lbrace :: Doc ann
lbrace :: forall ann. Doc ann
lbrace = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
'{'
-- | >>> rbrace
-- }
rbrace :: Doc ann
rbrace :: forall ann. Doc ann
rbrace = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
'}'

-- | >>> semi
-- ;
semi :: Doc ann
semi :: forall ann. Doc ann
semi = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
';'

-- | >>> colon
-- :
colon :: Doc ann
colon :: forall ann. Doc ann
colon = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
':'

-- | >>> comma
-- ,
comma :: Doc ann
comma :: forall ann. Doc ann
comma = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
','

-- | >>> "a" <> space <> "b"
-- a b
--
-- This is mostly used via @'<+>'@,
--
-- >>> "a" <+> "b"
-- a b
space :: Doc ann
space :: forall ann. Doc ann
space = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
' '

-- | >>> dot
-- .
dot :: Doc ann
dot :: forall ann. Doc ann
dot = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
'.'

-- | >>> slash
-- /
slash :: Doc ann
slash :: forall ann. Doc ann
slash = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
'/'

-- | >>> backslash
-- \\

backslash :: Doc ann
backslash :: forall ann. Doc ann
backslash = Doc ann
"\\"

-- | >>> equals
-- =
equals :: Doc ann
equals :: forall ann. Doc ann
equals = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
'='

-- | >>> pipe
-- |
pipe :: Doc ann
pipe :: forall ann. Doc ann
pipe = Char -> Doc ann
forall ann. Char -> Doc ann
Char Char
'|'



-- $setup
--
-- (Definitions for the doctests)
--
-- >>> :set -XOverloadedStrings
-- >>> import Data.Semigroup
-- >>> import Prettyprinter.Render.Text
-- >>> import Prettyprinter.Util