A somewhat dated collection of extra libraries and tools for the F# programming language.
To get, learn, install, use or contribute to F#, go to
You might also be looking for the The Visual F# Power Tools
, a set of extensions for the Visual F# IDE Tools, including rename refactoring and find-all-references.
The PowerPack is moving!
See below for where you can find the new home for some pieces of functionality. You can continue to get the functionality here via the old packages, of course.
Get Using Nuget
Note: instead of using this library in binary form, you may want to copy out the relevant parts of the source code into your application or use alternatives. This can reduce the dependencies of your application or component. For example, if all you want
is a simple quotation evaluator, than this F# snippet may be what you want
This assembly provides assorted utilities:
- Additional immutable datastructures, including HashMultiMap, tagged immutable sets and maps, extension methods giving a "ResizeArray" functional operations for the standard .NET System.Collections.Generic.List<_> and more
- Some Math data types and operations over them, including Matrix, Vector, Complex and BigRational (note: also consider using
Math.NET Numerics as your open source math library)
- Functions and types for F# Async programming, including asynchronous I/O extensions and several helper classes
F# 2.0 LINQ/Quotations Compiler/Converter
Note: This assembly requires .NET 3.5
FSharp.PowerPack.Linq.dll connects F# 2.0 with some LINQ features introduced in .NET 3.5. In F# 3.0 some of this functionality has been moved to the core F# language and FSharp.Core.dll.
- Provides converters from quotations to .NET expression trees:
let adderExpr = <@ fun i -> i + 1 @>.ToLinqExpression()
let adder = <@ fun i -> i + 1 @>.Compile()
F# CodeDOM Implementation
FSharp.Compiler.CodeDom.dll contains implementations of System.CodeDom.Compiler.CodeDomProvider for F#. This allows F# to be used with CodeDom consumers, and most importantly to author ASP.NET pages code-behind classes in F#. Not all ASP.NET features work with
this CodeDom, and you don't get strongly typed access to page elements, Some sample ASP.NET applications are in the test suite in the source tree.
F# Compatibility Helpers
FSharp.PowerPack.Compatibility.dll provides various helper functions for compatibility with OCaml and previous releases of F#
F# Parallel LINQ Integration (moved to
F# 2.0 Queries (now subsumbed by
F# 3.0 queries, part of the core distribution of F#)
F# Metadata Reader (now subsumbed by
FsLex and FsYacc (now an
F# Documentation generator (now subsumed by