Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

The Functional Graph Library for Haskell

Hackage Build Status

Originally by Martin Erwig, this library provides an inductive approach to dealing with graphs.

For more information, please read the documentation on Hackage.

The original website contains various papers that might help learning and understanding the approach taken by this library; however, the code might no longer match the actual implementation.

Arbitrary instances


If you wish to use fgl graphs with QuickCheck, have a look at the fgl-arbitrary package.

Original Credit attribution

From Martin Erwig's original README

I am grateful to many people who have helped me with bug reports, questions, comments, and implementations to improve the FGL. In particular, I would like to thank Martin Boehme, Luis Zeron, and Hal Daume for their contributions. Moreover, I would like to thank Abe Egnor and Isaac Jones at Aetion Technologies who refactored the modules into the new hierarchical name space and who have added two modules (see also the file CHANGES).