| Value | Description |
val ( << >> ) : ('ety,'c,'fty,'ety expr) template -> '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 ( <<| |>> ) : ('ety,'qty,'c,'ety expr) template -> 'ety expr -> 'qty option |
Use a quoted expression template as a function to query a typed expression template.
|
val ( <@ @> ) : ('ety,'c,'fty,'ety expr) template -> 'fty |
ASCII syntax for typed expression quotation. If there are holes
in the expression then a function is produced to generate new terms
via the function 'fill'.
|
val ( <@| |@> ) : ('ety,'qty,'c,'ety expr) template -> 'ety expr -> 'qty option |
ASCII syntax for expression querying via matching
|
val deepMacroExpandUntil : (expr -> bool) -> 'a expr -> 'a expr | |
val fill : ('ety,'c,'fty,'ety expr) template -> 'fty |
Fill the holes in a typed expression template
|
val lift : 'a -> 'a expr |
Reify any runtime value as an expression of family efLiftedValue.
|
val map_raw : (expr -> expr) -> 'a expr -> 'a expr |
Apply a an operation to the underlying raw term
|
val of_raw : expr -> 'a expr |
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 op_LessAtDot DotAtGreater :
('a,'b,'c,'a expr) template -> ('a,'b,'c,'a expr) template |
ASCII syntax for typed expression template quotation.
|
val query : ('ety,'qty,'c,'ety expr) template -> 'ety expr -> 'qty option |
Match an existing typed expression against the given typed expression template
|
val substitute :
(dtypeVarIdx -> dtype option) -> (exprVarName -> expr option) -> 'a expr ->
'a expr |
Substitution and instantiation.
Replace type variables and expression variables with parameters using the
given substitution maps. The functions return expressions that
do not carry static type annotations (Raw.expr),
hence there is an implicit requirement that these functions return
correctly typed expressions.
Warning: this function is incomplete and does not yet always correctly
rename variables to avoid capture.
|
val to_raw : 'a expr -> expr |
Return the untyped expression underlying this type-annotated expression
|
val unpickle : Type -> byte [] -> ('a,'b,'c,'d) template |
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.
|