[Home] Module Microsoft.FSharp.Quotations.Utilities


Some concepts and definitions used by the quotation library

Types

TypeDescription
type family A 'family' is a subset of a F# type, defined by injection/projection relationships to another type. For example, even integers are a family of integers.
type familyLLinear A general type of "right linear" families Note: an abbreviation for (('b * 'a),'b) family
type familyRLinear A general type of "left linear" families Note: an abbreviation for (('a * 'b),'b) family

Values

ValueDescription
val fAny : ('a,'a) family
The universal family for a type
val fMap : ('a -> 'b) * ('b -> 'a) -> ('a,'c) family -> ('b,'c) family
Add an additional projection to an existing family
val fMem : ('a,'b) family -> 'b -> bool
Test for membership of the family
val fOneOrMoreLLinear : ('a,'b) familyLLinear -> ('a list,'b) familyLLinear
A family corresponding to one or more repetitions of the given linear family.
val fOneOrMoreRLinear : ('a,'b) familyRLinear -> ('a list,'b) familyRLinear
A family corresponding to one or more repetitions of the given linear family.
val fOrElse : ('a,'b) family -> ('a,'b) family -> ('a,'b) family
Take the union of two families. Construction will attempt to construct a value in the first family - if an exception is raised then the second family is used.
val fRefine : ('a,'c) family -> ('b,'a) family -> ('b,'c) family
Refine a family by another family. A query will query the first family, and if that succeeds, query the second family. A construction will first make an element using the second family, and then use the result to make an element of the first family.
val fRefineLeft :
  ('a2,'a1) family -> (('a1 * 'b),'c) family -> (('a2 * 'b),'c) family
Refine the left of a binary expression family
val fRefineRight :
  (('a * 'b1),'c) family -> ('b2,'b1) family -> (('a * 'b2),'c) family
Refine the right of a binary family
val fSingleton : ('a,'b) family -> ('a -> 'a -> bool) -> 'a -> (unit,'b) family
Convert a family into a family corresponding to a singleton element according to the given equality function.
val fSubset : ('a,'b) family -> ('a -> bool) -> ('a,'b) family
Take a subset of an existing family according to the given filter.
val fZeroOrMoreLLinear : ('a,'b) familyLLinear -> ('a list,'b) familyLLinear
A family corresponding to repetitions of the given linear family.
val fZeroOrMoreRLinear : ('a,'b) familyRLinear -> ('a list,'b) familyRLinear
A family corresponding to repetitions of the given linear family.

See Also

Microsoft.FSharp.Quotations


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