[Home] Module Microsoft.FSharp.Quotations.Typed


Type-carrying quoted expressions and operations related to them.

Types

TypeDescription
type ArgSaver For internal use only.
type expr Type-carrying quoted expressions. Expressions are generated either by quotations and quotation templates in source text or programatically by using runtime-typed expressions [[RuntimeType.expr]] and using [[of_raw]] to annotate them.
type template Type-carrying quoted expression templates.

Values

ValueDescription
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.

See Also

Microsoft.FSharp.Quotations


Documentation for assembly fslib, version 1.1.10.1, generated using F# version 1.1.10.1