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 fsharp.org.
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!
The F# Power Pack is stable and useful, but will not evolve significantly from this point. You can find many more F# components and projects on this list.
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

Install-Package FsPowerPack.Community
Install-Package FsPowerPack.Core.Community
Install-Package FsPowerPack.Linq.Community

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 FSharp.Collections.ParallelSeq)

F# 2.0 Queries (now subsumbed by F# 3.0 queries, part of the core distribution of F#)

F# Metadata Reader (now subsumbed by FSharp.Compiler.Service)

FsLex and FsYacc (now an independent project)

F# Documentation generator (now subsumed by FSharp.Formatting)

Last edited Apr 18 at 7:14 PM by dsyme, version 89