The continuation monad. The algorithm is from Wes Dyer http://blogs.msdn.com/b/wesdyer/archive/2008/01/11/the-marvels-of-monads.aspx. The builder approach is from Matthew Podwysocki's excellent Creating Extended Builders series http://codebetter.com/blogs/matthew.podwysocki/archive/2010/01/18/much-ado-about-monads-creating-extended-builders.aspx. Current implementation from Matt's gist at https://gist.github.com/628956
The coroutine type from http://fssnip.net/7M
Conversion functions from Action/Func to FSharpFunc We need these because FuncConvert often makes C# type inference fail.
Extensions around Actions and Funcs
Semigroup (set with associative binary operation)
Helps the C# compiler with Func type inference.
Monoid (associative binary operation with identity)
Generic monadic operators
The Software Transactional Memory monad.
Functional wrappers around String instance methods
|Enumeratee<'ChunkOut, 'ChunkIn, 'T>||
An enumeratee is an enumerator that produces an iteratee using another iteratee as input. Enumeratees can be used for tasks such as encoding or encrypting data.
An enumerator generates a stream of data and feeds an iteratee, returning a new iteratee.
The iteratee is a stream consumer that will consume a stream of data until either it receives an EOF or meets its own requirements for consuming data. The iteratee will return Continue whenever it is ready to receive the next chunk. An iteratee is fed data by an Enumerator, which generates a Stream.
A stream of chunks of data generated by an Enumerator. The stream can be composed of chunks of 'T, empty blocks indicating a wait, or an EOF marker. Be aware that when using #seq<_> types, you will need to check for both Seq.empty () and Empty.
This module provides Compile and Eval extension members for F# quotation values, implemented by translating to LINQ expression trees and using the LINQ dynamic compiler.
A record of options to control structural formatting. For F# Interactive properties matching those of this value can be accessed via the 'fsi' value.
Floating Point format given in the same format accepted by System.Double.ToString, e.g. f6 or g15.
If ShowProperties is set the printing process will evaluate properties of the values being displayed. This may cause additional computation.
The ShowIEnumerable is set the printing process will force the evalution of IEnumerable objects to a small, finite depth, as determined by the printing parameters. This may lead to additional computation being performed during printing.
open Microsoft.FSharp.Compiler.Interactive.Settings;; setPrintWidth 120;;
Data representing joints in structured layouts of terms. The representation of this data type is only for the consumption of formatting engines.
Data representing structured layouts of terms. The representation of this data type is only for the consumption of formatting engines.
A layout is a sequence of strings which have been joined together. The strings are classified as words, separators and left and right parenthesis. This classification determines where spaces are inserted. A joint is either unbreakable, breakable or broken. If a joint is broken the RHS layout occurs on the next line with optional indentation. A layout can be squashed to for given width which forces breaks as required.