Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- type Render a = RenderContext -> a -> Text
- data RenderContext = RenderContext {}
- renderContext'default :: RenderContext
- renderContext'terse :: RenderContext
- render'expression :: Render Expression
- render'expression'listContext :: Render Expression
- render'expression'dotLeftContext :: Render Expression
- render'expression'applyLeftContext :: Render Expression
- render'expression'applyRightContext :: Render Expression
- render'expression'inParens :: Render Expression
- render'expression'dictKey :: Render Expression
- render'var :: Render Var
- str'escape :: Text -> Text
- render'strStatic'unquotedIfPossible :: Render Str'Static
- render'strStatic'quoted :: Render Str'Static
- render'strDynamic'unquotedIfPossible :: Render Str'Dynamic
- render'strDynamic'quoted :: Render Str'Dynamic
- render'str'1 :: Render Str'1
- render'str'indented :: Render InStr
- render'str'indented'1 :: Render InStr'1
- render'list :: Render List
- render'dict :: Render Dict
- render'dictBinding :: Render DictBinding
- render'dot :: Render Dot
- render'lambda :: Render Lambda
- render'param :: Render Param
- render'dictPattern :: Render DictPattern
- render'dictPattern'1 :: Render DictPattern'1
- render'apply :: Render Apply
- render'let :: Render Let
- render'letBinding :: Render LetBinding
Render
type Render a = RenderContext -> a -> Text Source #
data RenderContext Source #
Expressions
render'expression :: Render Expression Source #
Render an expression.
Examples
>>>
:{
>>>
render'expression renderContext'terse
>>>
(lambda
>>>
(param "a" <> pattern
>>>
[ dict'param "f"
>>>
, dict'param "b" & def (apply (var "g") (var "x"))
>>>
] <> ellipsis)
>>>
(apply (var "f") (var "b")))
>>>
:}
"a@{ f, b ? g x, ... }: f b"
render'expression'listContext :: Render Expression Source #
Render an expression in a list context.
render'expression'dotLeftContext :: Render Expression Source #
Render an expression in the context of the left-hand side of a Dot
.
render'expression'applyLeftContext :: Render Expression Source #
Render an expression in the context of the left-hand side of an Apply
.
render'expression'applyRightContext :: Render Expression Source #
Render an expression in the context of the right-hand side of an Apply
.
Variables
render'var :: Render Var Source #
Render an unquoted string in unquoted form.
Strings
str'escape :: Text -> Text Source #
Insert escape sequences for rendering normal double-quoted ("
) strings.
Static strings
render'strStatic'unquotedIfPossible :: Render Str'Static Source #
Render a static string, in unquoted form if possible.
render'strStatic'quoted :: Render Str'Static Source #
Render a static string, in quoted form.
Dynamic strings
render'strDynamic'unquotedIfPossible :: Render Str'Dynamic Source #
Render a dynamic string, in unquoted form if possible.
render'strDynamic'quoted :: Render Str'Dynamic Source #
Render a dynamic string, in quoted form.
Indented strings
Lists
render'list :: Render List Source #
Render a list literal ([
... ]
).
Dicts
render'dict :: Render Dict Source #
Render a dict literal ({
... }
).
render'dictBinding :: Render DictBinding Source #
Render a binding within a Dict
, including the trailing semicolon.
Dict lookup
render'dot :: Render Dot Source #
Render a dot expression (a.b
).
Lambdas
render'lambda :: Render Lambda Source #
Render a lambda expression (x: y
).
Function parameters
render'param :: Render Param Source #
Render a lambda parameter: everything from the beginning of a lambda, up to
but not including the :
that separates the head from the body of the lambda.
render'dictPattern :: Render DictPattern Source #
Render a dict pattern ({ a, b ? c, ... }
).
render'dictPattern'1 :: Render DictPattern'1 Source #
Render a single item in a DictPattern
.
Function application
render'apply :: Render Apply Source #
Render a function application expression (f x
).
let
render'let :: Render Let Source #
Render a let
-in
expression.
render'letBinding :: Render LetBinding Source #
Render a binding within a Let
, including the trailing semicolon.