FSharpx.Extras


FSharpx.Extras

FSharpx Namespace

TypeDescription
Cont<'T, 'r>

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

Coroutine

The coroutine type from http://fssnip.net/7M

Dictionary
EnumerableEx
FSharpAsyncEx
FSharpChoice
FSharpFunc

Conversion functions from Action/Func to FSharpFunc We need these because FuncConvert often makes C# type inference fail.

FSharpLazy
FSharpList
FSharpMap
FSharpOption
FSharpSet
Funcs

Extensions around Actions and Funcs

ISemigroup<'T>

Semigroup (set with associative binary operation)

L

Helps the C# compiler with Func type inference.

Monoid<'T>

Monoid (associative binary operation with identity)

NonEmptyListEx
ModuleDescription
Async
Choice
Continuation
Enum
Lazy
Monoid
Nullable
Operators

Generic monadic operators

Option
Reader
Semigroup
State
Stm

The Software Transactional Memory monad.

String

Functional wrappers around String instance methods

Task
TimeMeasurement
Undo
Validation
Writer
ZipList

FSharpx.Collections Namespace

ModuleDescription
ByteString
List
Map
Seq
Set

FSharpx.Functional Namespace

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

Enumerator<'Chunk, 'T>

An enumerator generates a stream of data and feeds an iteratee, returning a new iteratee.

Iteratee<'Chunk, 'T>

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.

Lens<'T, 'U>
Stream<'Chunk>

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.

ModuleDescription
Enumerator
Iteratee
Lens
Prelude

FSharpx.Http Namespace

ModuleDescription
Conneg

FSharpx.IO Namespace

ModuleDescription
IOPrimitives

FSharpx.Linq Namespace

TypeDescription
QuotationEvaluator
ModuleDescription
ExtraHashCompare
QuotationEvaluation

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.

FSharpx.Net Namespace

ModuleDescription
HttpExtensions

FSharpx.Text Namespace

TypeDescription
ActiveMatch
ModuleDescription
Regex
Strings

Microsoft.FSharp.Text.StructuredFormat Namespace

TypeDescription
FormatOptions

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.

From F# Interactive the default settings can be adjusted using, for example,
  open Microsoft.FSharp.Compiler.Interactive.Settings;;
  setPrintWidth 120;;
IEnvironment
Joint

Data representing joints in structured layouts of terms. The representation of this data type is only for the consumption of formatting engines.

Layout

Data representing structured layouts of terms. The representation of this data type is only for the consumption of formatting engines.

ModuleDescription
Display
LayoutOps

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.

Fork me on GitHub