| ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Synopsis | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Documentation | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Extract the value of the Repr. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Extract the renderer of the Repr. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
To render you need to supply the precedence and fixity of the enclosing context. For more documentation about precedence and fixity see: http://haskell.org/onlinereport/decls.html#sect4.4.2 The reason the renderer returns a DString, instead of for example a String has to do with efficiency. The rendering of expressions involves lots of left-factored appends i.e.: ((a ++ b) ++ c) ++ d. A DString, which is equivalent to a ShowS, has a O(1) append operation while a String has a O(n) append. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
The precedence of operators and function application.
| ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
x <?> s annotates the rendering with the given string. The rendering wil look like: "({- s -} ...)" where ... is the rendering of x. This combinator is handy when you want to render the ouput of a function and you want to see how the parameters of the function contribute to the result. For example, suppose you defined the following function f: f p0 p1 p2 = p0 ^ 2 + sqrt p1 * ([p2..] !! 10) You can then apply f to some parameters annotated with some descriptive strings (the name of the parameter is usally a good idea): f (1 <?> "p0") (2 <?> "p1") (3 <?> "p2") The rendering will then look like: "({- p0 -} fromInteger 1) * ({- p0 -} fromInteger 1) + sqrt ({- p1 -} (fromInteger 2)) * enumFrom ({- p2 -} (fromInteger 3)) !! 10" | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
pure x constructs a Repr which has x as value and the showed x as rendering. For example: *Repr> let r = pure [1,2,3] *Repr> extract r [1,2,3] *Repr> show r "[1,2,3]" | ||||||||||||||||||||||||||
Produced by Haddock version 2.4.2 |