| ||||||||||||||||

| ||||||||||||||||

| ||||||||||||||||

Description | ||||||||||||||||

Handy functions for creating much Core syntax | ||||||||||||||||

Synopsis | ||||||||||||||||

Constructing normal syntax | ||||||||||||||||

| ||||||||||||||||

Bind a binding group over an expression, using a let or case as
appropriate (see CoreSyn)
| ||||||||||||||||

| ||||||||||||||||

Bind a list of binding groups over an expression. The leftmost binding group becomes the outermost group in the resulting expression | ||||||||||||||||

| ||||||||||||||||

Construct an expression which represents the application of one expression to the other | ||||||||||||||||

| ||||||||||||||||

Construct an expression which represents the application of a number of expressions to another. The leftmost expression in the list is applied first | ||||||||||||||||

| ||||||||||||||||

Construct an expression which represents the application of a number of expressions to that of a data constructor expression. The leftmost expression in the list is applied first | ||||||||||||||||

| ||||||||||||||||

Create a lambda where the given expression has a number of variables bound over it. The leftmost binder is that bound by the outermost lambda in the result | ||||||||||||||||

| ||||||||||||||||

| ||||||||||||||||

Make a wildcard binder. This is typically used when you need a binder
that you expect to use only at a *binding* site. Do not use it at
occurrence sites because it has a single, fixed unique, and it's very
easy to get into difficulties with shadowing. That's why it is used so little.
| ||||||||||||||||

| ||||||||||||||||

Constructing boxed literals | ||||||||||||||||

| ||||||||||||||||

Create a CoreExpr which will evaluate to the a Word with the given value
| ||||||||||||||||

| ||||||||||||||||

Create a CoreExpr which will evaluate to the given Word
| ||||||||||||||||

| ||||||||||||||||

Create a CoreExpr which will evaluate to the given Int
| ||||||||||||||||

| ||||||||||||||||

Create a CoreExpr which will evaluate to the given Int
| ||||||||||||||||

| ||||||||||||||||

Create a CoreExpr which will evaluate to the given Integer
| ||||||||||||||||

| ||||||||||||||||

Create a CoreExpr which will evaluate to the given Float
| ||||||||||||||||

| ||||||||||||||||

Create a CoreExpr which will evaluate to the given Double
| ||||||||||||||||

| ||||||||||||||||

Create a CoreExpr which will evaluate to the given Char
| ||||||||||||||||

| ||||||||||||||||

Create a CoreExpr which will evaluate to the given String
| ||||||||||||||||

| ||||||||||||||||

Create a CoreExpr which will evaluate to a string morally equivalent to the given FastString
| ||||||||||||||||

Constructing general big tuples | ||||||||||||||||

GHCs built in tuples can only go up to We call tuples above this size "big tuples", and emulate them by creating and pattern matching on >nested< tuples that are expressible by GHC. Nesting policy: it's better to have a 2-tuple of 10-tuples (3 objects) than a 10-tuple of 2-tuples (11 objects), so we want the leaves of any construction to be big. If you just use the | ||||||||||||||||

| ||||||||||||||||

| ||||||||||||||||

Constructing small tuples | ||||||||||||||||

| ||||||||||||||||

Build a small tuple holding the specified variables | ||||||||||||||||

| ||||||||||||||||

Bulid the type of a small tuple that holds the specified variables | ||||||||||||||||

| ||||||||||||||||

Build a small tuple holding the specified expressions | ||||||||||||||||

| ||||||||||||||||

Build the type of a small tuple that holds the specified type of thing | ||||||||||||||||

Constructing big tuples | ||||||||||||||||

| ||||||||||||||||

Build a big tuple holding the specified variables | ||||||||||||||||

| ||||||||||||||||

Build the type of a big tuple that holds the specified variables | ||||||||||||||||

| ||||||||||||||||

Build a big tuple holding the specified expressions | ||||||||||||||||

| ||||||||||||||||

Build the type of a big tuple that holds the specified type of thing | ||||||||||||||||

Deconstructing small tuples | ||||||||||||||||

| ||||||||||||||||

Like mkSmallTupleSelector [x] x v e = [| e |] mkSmallTupleSelector [x,y,z] x v e = [| case e of v { (x,y,z) -> x } |] | ||||||||||||||||

| ||||||||||||||||

| ||||||||||||||||

Deconstructing big tuples | ||||||||||||||||

| ||||||||||||||||

| ||||||||||||||||

| ||||||||||||||||

| ||||||||||||||||

Constructing list expressions | ||||||||||||||||

| ||||||||||||||||

Makes a list [] for lists of the specified type
| ||||||||||||||||

| ||||||||||||||||

Makes a list (:) for lists of the specified type
| ||||||||||||||||

| ||||||||||||||||

Make a list containing the given expressions, where the list has the given type | ||||||||||||||||

| ||||||||||||||||

| ||||||||||||||||

| ||||||||||||||||

| ||||||||||||||||

Produced by Haddock version 2.6.1 |