Value | Description |
val ( << >> ) : Template<'ety,'d,'fty,Expr<'ety>> -> 'fty |
Quote an expression. If there are holes
in the expression then a function is produced to generate new terms
via the function 'fill'.
|
val ( <@ @> ) : Template<'ety,'d,'fty,Expr<'ety>> -> 'fty |
ASCII syntax for typed expression quotation. If there are holes
in the expression then a function is produced to generate new terms
by filling in the holes with the arguments given to the function.
|
val ( <@. .@> ) : Template<'a,'b,'c,Expr<'a>> -> Template<'a,'b,'c,Expr<'a>> |
ASCII syntax for typed expression template quotation.
|
val ( |Template|_| ) :
Template<'ety,'qty,'e,Expr<'ety>> -> (Expr<'ety> -> 'qty option) |
Match an existing typed expression against the given typed expression template
|
val ( ~% ) : 'a -> Expr<'a> | |
val ( ~@ ) : 'a -> Expr<'a> | |
val DeepMacroExpandUntil : (Expr -> bool) -> Expr<'a> -> Expr<'a> |
This function is mainly included for demonstration purposes and should
not be used in production quotation processing.
|
val lift : 'a -> Expr<'a> |
Reify any runtime value as an expression of family LiftedValue.
|
val map_raw : (Expr -> Expr) -> Expr<'a> -> Expr<'a> |
Apply a an operation to the underlying raw term
|
val MkTemplate : Template<'ety,'d,'fty,Expr<'ety>> -> 'fty |
Fill the holes in a typed expression template
|
val of_raw : Expr -> Expr<'a> |
Return a new typed expression given an underlying runtime-typed expression.
A type annotation is usually required to use this function, and
using an incorrect type annotation may result in a later runtime exception.
|
val to_raw : Expr<'a> -> Expr |
Return the untyped expression underlying this type-annotated expression
|
val Unpickle : Type -> byte [] -> Template<'a,'b,'c,'d> |
This function is called automatically when quotation syntax (<@ @>) and related typed-expression
quotations are used. The bytes are a pickled binary representation of an unlinke form of the qutoed expression,
and the System.Type argument is any type in the assembly where the quoted
expression occurs, i.e. it helps scope the interpretation of the cross-assembly
references in the bytes.
|