FSharp.Compiler.CodeDom The total number of elements in the set Remove the given element from the set Apply the given function to each binding in the hash table Apply the given function to the set threading the accumulating parameter through the sequence of function applications Create a new empty mutable hash set with key hash/equality based on the F# structural "hash" and (=) functions Create a new empty mutable hash set with an internal bucket array of the given approximate size and with key hash/equality based on the F# structural "hash" and (=) functions Create a new empty mutable hash set with an internal bucket array of the given approximate size and with the given key hash/equality functions Create a new mutable hash set containing elements drawn from the given sequence Make a shallow copy of the set Test if the set contains the given element Clear all elements from the set Add an element to the collection Create a new empty mutable hash set with key hash/equality based on the F# structural "hash" and (=) functions Create a new empty mutable hash set with an internal bucket array of the given approximate size and with key hash/equality based on the F# structural "hash" and (=) functions Create a new empty mutable hash set with an internal bucket array of the given approximate size and with the given key hash/equality functions Create a new mutable hash set containing elements drawn from the given sequence Mutable hash sets based by default on F# structural "hash" and (=) functions. Implemented via a hash table and/or Dictionary. The default location of FSharp.Core.dll and fsc.exe based on the version of fsc.exe that is running Implementation of the CodeDomProvider for the F# language. This is specialized version that can be used with ASP.NET. Implementation of the CodeDomProvider for the F# language. If you intend to use CodeDom with ASP.NET you should use FSharpAspNetCodeProvider instead. Where are we generating member? Generates code for binary operator using function for left and right operand Process collection - keeps context through the whole processing calls 'f' for every element in sequence and 'fs' between every two elements as a separator Call specified function only on elements of specified type. (performs dynamic type test using x.GetType()) Process collection - keeps context through the whole processing calls 'f' for every element in sequence and 'fs' between every two elements as a separator. This is a variant that works on typed collections. Returns F# conversion function for the specified type (or empty string) Create context using specified text writer and options Create closure to do the counting (this is usend when we need indexing during collection processing) Call function, but give it context as an argument Generate array initializer. Checks generator options for ASP.NET workaround. Generates expression which is casted to the inferred type using "(unbox (box e))" this is useful if the environment where it is used specifies the type explicitly for example in array initializers Generates method code, adds OverloadID attribute when index isn't "-1" Generates comments and than calls 'generatMethod' Generate code for compile unit (file) Generate expression - with unkonw type Generates expression, but generates "this" if the expression is null (used in field reference etc. because some CodeDOM generators do this though I believe it is a mistake) fields Abstract method in the interface Abstract property in the interface Generates a main method. By default all CodeDOM generated methods are 'virtual' which means that we have to generate "abstract and default" (unless we're in struct or we're implementing an interface, or the method is overriden) (NOTE: the same logic isn't properly implemented for properties) Generate code for namespace without compilation unit Generates namespace code - takes output from 'preprocessNamespace' Generate value of primitive expression Generate type arguments using context Generate code for type declaration (not included in namespace) Generate type reference using context (this is most commonly used method) Get type reference, but don't rename .NET types to F# types (this is only needed when calling static methods on the type) Generates type reference (not for arrays) Generate type reference with empty context Get full type reference using information from context Get full type reference string using empty context Identity function Are both types numerical types where numeric conversion function can be applied? Perform map and filter operations in one Output string as a valid F# identifier Append specified string without line-break Function composition operator Break-line and append specified string Returns CodeNamespace, list of classes with scope (which includes class names of containing classes and sequence of class renames) Preprocess collection with type parameters Returns array to be used with usingTyParams and function to be called to generate < ... > code Print object converted to string Tries to resolve type of a variable and adds it to the Context dictionary Tries to resolve type of an expression using a few tricks: * Fields of current type may have known type * Properties of current type as well * We can also try to resolve other properties (sometimes it helps) * Resolve type for local variables or argument reference Get System.Type of know type (either standard type or resolved) Tries to resolve if type is an array, so we can generate appropriate code (it can be either indexer or array, but we need to generate .Item call for indexers (no overloading is supported by .[]). Returns: "None" - can't resolve, "Some" resovled (true/false - is it an array?) Print unique id using: "+> uniqid" Record specified type parameters in the context, call generating function and then restore the original type parameters (this works if someone uses nested type parameters with the same name) Matches array or indexer expression and corrects it if the generated CodeDOM is incorrect Tries to find .NET type for specified type name This is used when we need to know type in order to generate something correctly, but it's just a fallback case Walks through the CodeDom tree and keeps current "scope" and the result. The result is collected through entire tree, but the modified scope is passed only to sub-nodes of the current node. First argument is a function that is called for nodes and has a function as a first argument, scope and result as a second and current node as a third. The function argument can be used to walk deeper in the tree if wanted. Search for members and return flat list of selected members Function given as an argument returns tuple - first item specifies if the current element should be included in the result, the second specifies if we should walk through child members of the current object