diff --git a/._LICENSE b/._LICENSE
new file mode 100644
Binary files /dev/null and b/._LICENSE differ
diff --git a/._Setup.lhs b/._Setup.lhs
new file mode 100644
Binary files /dev/null and b/._Setup.lhs differ
diff --git a/._enumerable.cabal b/._enumerable.cabal
new file mode 100644
Binary files /dev/null and b/._enumerable.cabal differ
diff --git a/Data/._Enumerable.hs b/Data/._Enumerable.hs
new file mode 100644
Binary files /dev/null and b/Data/._Enumerable.hs differ
diff --git a/Data/Enumerable.hs b/Data/Enumerable.hs
new file mode 100644
--- /dev/null
+++ b/Data/Enumerable.hs
@@ -0,0 +1,148 @@
+{-# LANGUAGE ScopedTypeVariables #-}
+module Data.Enumerable where
+
+import Data.Int
+import Data.Word
+import Data.Ratio
+
+import Unsafe.Coerce
+
+import Data.List
+import Data.Maybe
+
+import Control.Applicative
+import Control.Monad
+import Control.Monad.Omega
+
+import Data.Tagged
+
+class Enumerable a where
+  enumerate :: [a]
+  enumerateTotal :: [a]
+  enumeratePartial :: [a]
+
+  enumeratePartial = enumerate ++ [error "bottom"]
+  enumerateTotal = enumerate
+
+  isPartial :: Tagged a Bool
+  isPartial = Tagged False
+
+data Cardinal = Finite Integer | Aleph Integer -- I can dream
+
+class (Enumerable a) => FinitelyEnumerable a where
+  cardinality :: Tagged a Integer
+  cardinality = Tagged $ genericLength (enumerate :: [a]) -- if you're too lazy to figure it out
+
+instance (FinitelyEnumerable a, FinitelyEnumerable b, Eq a) => Enumerable (a -> b) where
+  enumerate = let xs = enumerate in map (\ys z -> fromJust . lookup z $ zip xs ys) (sequence $ map (const enumerate) (enumerate :: [a])) -- probably not very practical :P
+  
+instance (FinitelyEnumerable a, FinitelyEnumerable b, Eq a) => FinitelyEnumerable (a -> b) where
+  cardinality = Tagged $ unTagged (cardinality :: Tagged b Integer) ^ unTagged (cardinality :: Tagged a Integer)
+
+instance (Enumerable a, Enumerable b) => Enumerable (a, b) 
+  where enumerate = runOmega $ (,) <$> each enumerate <*> each enumerate
+
+instance (FinitelyEnumerable a, FinitelyEnumerable b) => FinitelyEnumerable (a, b)
+  where cardinality = Tagged $ unTagged (cardinality :: Tagged a Integer) * unTagged (cardinality :: Tagged b Integer)
+
+instance (Enumerable a, Enumerable b, Enumerable c) => Enumerable (a, b, c) 
+  where enumerate = runOmega $ (,,) <$> each enumerate <*> each enumerate <*> each enumerate
+
+instance (FinitelyEnumerable a, FinitelyEnumerable b, FinitelyEnumerable c) => FinitelyEnumerable (a, b, c)
+  where cardinality = Tagged $ unTagged (cardinality :: Tagged a Integer) * unTagged (cardinality :: Tagged b Integer) * unTagged (cardinality :: Tagged c Integer)
+
+instance (Enumerable a, Enumerable b, Enumerable c, Enumerable d) => Enumerable (a, b, c, d) 
+  where enumerate = runOmega $ (,,,) <$> each enumerate <*> each enumerate <*> each enumerate <*> each enumerate
+
+instance (FinitelyEnumerable a, FinitelyEnumerable b, FinitelyEnumerable c, FinitelyEnumerable d) => FinitelyEnumerable (a, b, c, d)
+  where cardinality = Tagged $ unTagged (cardinality :: Tagged a Integer) * unTagged (cardinality :: Tagged b Integer) * unTagged (cardinality :: Tagged c Integer) * unTagged (cardinality :: Tagged d Integer)
+  
+instance (Enumerable a, Enumerable b, Enumerable c, Enumerable d, Enumerable e) => Enumerable (a, b, c, d, e) 
+  where enumerate = runOmega $ (,,,,) <$> each enumerate <*> each enumerate <*> each enumerate <*> each enumerate <*> each enumerate
+
+instance (FinitelyEnumerable a, FinitelyEnumerable b, FinitelyEnumerable c, FinitelyEnumerable d, FinitelyEnumerable e) => FinitelyEnumerable (a, b, c, d, e)
+  where cardinality = Tagged $ unTagged (cardinality :: Tagged a Integer) * unTagged (cardinality :: Tagged b Integer) * unTagged (cardinality :: Tagged c Integer) * unTagged (cardinality :: Tagged d Integer) * unTagged (cardinality :: Tagged d Integer)
+
+instance (Enumerable a) => Enumerable (Maybe a) where
+  enumerate = Nothing : map Just enumerate
+  
+instance (FinitelyEnumerable a) => FinitelyEnumerable (Maybe a) where
+  cardinality = Tagged $ 1 + unTagged (cardinality :: Tagged a Integer)
+
+instance (Enumerable a, Enumerable b) => Enumerable (Either a b) where
+  enumerate = concat . transpose $ [map Left enumerate, map Right enumerate]
+
+instance (FinitelyEnumerable a, FinitelyEnumerable b) => FinitelyEnumerable (Either a b) where
+  cardinality = Tagged $ unTagged (cardinality :: Tagged a Integer) + unTagged (cardinality :: Tagged b Integer)
+
+instance (Enumerable a) => Enumerable [a] where
+  enumerate = concatMap (flip replicateM enumerate) [0..]
+
+instance Enumerable         () where enumerate     = [()]
+instance FinitelyEnumerable () where cardinality = Tagged 1
+
+instance Enumerable         Bool where enumerate     = [minBound..maxBound]
+instance FinitelyEnumerable Bool where cardinality = Tagged 2
+
+instance Enumerable         Ordering where enumerate     = [minBound..maxBound]
+instance FinitelyEnumerable Ordering where cardinality = Tagged 3
+
+instance Enumerable         Char where enumerate     = [minBound..maxBound]
+instance FinitelyEnumerable Char where cardinality = Tagged 1114112
+
+instance Enumerable         Word where enumerate     = [minBound..maxBound]
+instance FinitelyEnumerable Word where cardinality = Tagged $ fromIntegral (maxBound :: Word) - fromIntegral (minBound :: Word) + 1
+
+instance Enumerable         Word8  where enumerate     = [minBound..maxBound]
+instance FinitelyEnumerable Word8  where cardinality = Tagged $ 2 ^ (8 :: Int)
+
+instance Enumerable         Word16 where enumerate     = [minBound..maxBound]
+instance FinitelyEnumerable Word16 where cardinality = Tagged $ 2 ^ (16 :: Int)
+
+instance Enumerable         Word32 where enumerate     = [minBound..maxBound]
+instance FinitelyEnumerable Word32 where cardinality = Tagged $ 2 ^ (32 :: Int)
+
+instance Enumerable         Word64 where enumerate   = [minBound..maxBound]
+instance FinitelyEnumerable Word64 where cardinality = Tagged $ 2 ^ (64 :: Int)
+
+enumerateInterleaved :: (Enum a, Num a) => [a]
+enumerateInterleaved = 0 : init (concat [[-x, x] | x <- [-1,-2..]])
+
+instance Enumerable         Int where enumerate     = [minBound..maxBound]
+instance FinitelyEnumerable Int where cardinality = Tagged $ fromIntegral (maxBound :: Int) - fromIntegral (minBound :: Int) + 1
+
+instance Enumerable         Int8  where enumerate     = [minBound..maxBound]
+instance FinitelyEnumerable Int8  where cardinality = Tagged $ 2 ^ (8 :: Int)
+
+instance Enumerable         Int16 where enumerate     = [minBound..maxBound]
+instance FinitelyEnumerable Int16 where cardinality = Tagged $ 2 ^ (16 :: Int)
+
+instance Enumerable         Int32 where enumerate     = [minBound..maxBound]
+instance FinitelyEnumerable Int32 where cardinality = Tagged $ 2 ^ (32 :: Int)
+
+instance Enumerable         Int64 where enumerate     = [minBound..maxBound]
+instance FinitelyEnumerable Int64 where cardinality = Tagged $ 2 ^ (64 :: Int)
+
+instance Enumerable         Float where enumerate     = map unsafeCoerce [0..maxBound :: Word32]
+instance FinitelyEnumerable Float where cardinality = Tagged $ 2 ^ (32 :: Int)
+
+instance Enumerable         Double where enumerate     = map unsafeCoerce [0..maxBound :: Word64]
+instance FinitelyEnumerable Double where cardinality = Tagged $ 2 ^ (64 :: Int)
+
+instance Enumerable Integer where enumerate = enumerateInterleaved
+
+instance (Enumerable a, Integral a) => Enumerable (Ratio a) where
+  enumerate = nub . map (uncurry (%)) . filter ((/=0) . snd) $ enumerate -- does this cover all of them? there's probably a better way of generating them, regardless
+  
+instance (FinitelyEnumerable a, Integral a) => FinitelyEnumerable (Ratio a)
+
+newtype Partial a = Partial a
+
+instance Enumerable a => Enumerable (Partial a) where
+    enumerate = map Partial $ enumeratePartial 
+    enumerateTotal = map Partial $ enumerateTotal 
+    enumeratePartial = enumerate
+    isPartial = Tagged True
+    
+instance FinitelyEnumerable a => FinitelyEnumerable (Partial a) where
+  cardinality = Tagged $ 1 + unTagged (cardinality :: Tagged a Integer)
diff --git a/Data/Enumerable/._ControversialFunctionEquality.hs b/Data/Enumerable/._ControversialFunctionEquality.hs
new file mode 100644
Binary files /dev/null and b/Data/Enumerable/._ControversialFunctionEquality.hs differ
diff --git a/Data/Enumerable/._FunctionEquality.hs b/Data/Enumerable/._FunctionEquality.hs
new file mode 100644
Binary files /dev/null and b/Data/Enumerable/._FunctionEquality.hs differ
diff --git a/Data/Enumerable/ControversialFunctionEquality.hs b/Data/Enumerable/ControversialFunctionEquality.hs
new file mode 100644
--- /dev/null
+++ b/Data/Enumerable/ControversialFunctionEquality.hs
@@ -0,0 +1,8 @@
+module Data.Enumerable.ControversialFunctionEquality where
+
+import Data.Enumerable
+import Control.Applicative
+
+instance (Enumerable a, Eq b) => Eq (a -> b) where
+  f == g = all (liftA2 (==) f g) enumerate
+  f /= g = any (liftA2 (/=) f g) enumerate
diff --git a/Data/Enumerable/FunctionEquality.hs b/Data/Enumerable/FunctionEquality.hs
new file mode 100644
--- /dev/null
+++ b/Data/Enumerable/FunctionEquality.hs
@@ -0,0 +1,8 @@
+module Data.Enumerable.FunctionEquality where
+
+import Data.Enumerable
+import Control.Applicative
+
+instance (FinitelyEnumerable a, Eq b) => Eq (a -> b) where
+  f == g = all (liftA2 (==) f g) enumerate
+  f /= g = any (liftA2 (/=) f g) enumerate
diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,30 @@
+Copyright (c) 2009 Daniel Peebles
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+    * Neither the name of Daniel Peebles nor the names of other
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Setup.lhs b/Setup.lhs
new file mode 100644
--- /dev/null
+++ b/Setup.lhs
@@ -0,0 +1,7 @@
+#!/usr/bin/runhaskell
+> module Main (main) where
+
+> import Distribution.Simple
+
+> main :: IO ()
+> main = defaultMain
diff --git a/dist/build/Data/Enumerable.hi b/dist/build/Data/Enumerable.hi
new file mode 100644
Binary files /dev/null and b/dist/build/Data/Enumerable.hi differ
diff --git a/dist/build/Data/Enumerable.o b/dist/build/Data/Enumerable.o
new file mode 100644
Binary files /dev/null and b/dist/build/Data/Enumerable.o differ
diff --git a/dist/build/Data/Enumerable.p_hi b/dist/build/Data/Enumerable.p_hi
new file mode 100644
Binary files /dev/null and b/dist/build/Data/Enumerable.p_hi differ
diff --git a/dist/build/Data/Enumerable.p_o b/dist/build/Data/Enumerable.p_o
new file mode 100644
Binary files /dev/null and b/dist/build/Data/Enumerable.p_o differ
diff --git a/dist/build/Data/Enumerable/ControversialFunctionEquality.hi b/dist/build/Data/Enumerable/ControversialFunctionEquality.hi
new file mode 100644
Binary files /dev/null and b/dist/build/Data/Enumerable/ControversialFunctionEquality.hi differ
diff --git a/dist/build/Data/Enumerable/ControversialFunctionEquality.o b/dist/build/Data/Enumerable/ControversialFunctionEquality.o
new file mode 100644
Binary files /dev/null and b/dist/build/Data/Enumerable/ControversialFunctionEquality.o differ
diff --git a/dist/build/Data/Enumerable/ControversialFunctionEquality.p_hi b/dist/build/Data/Enumerable/ControversialFunctionEquality.p_hi
new file mode 100644
Binary files /dev/null and b/dist/build/Data/Enumerable/ControversialFunctionEquality.p_hi differ
diff --git a/dist/build/Data/Enumerable/ControversialFunctionEquality.p_o b/dist/build/Data/Enumerable/ControversialFunctionEquality.p_o
new file mode 100644
Binary files /dev/null and b/dist/build/Data/Enumerable/ControversialFunctionEquality.p_o differ
diff --git a/dist/build/Data/Enumerable/FunctionEquality.hi b/dist/build/Data/Enumerable/FunctionEquality.hi
new file mode 100644
Binary files /dev/null and b/dist/build/Data/Enumerable/FunctionEquality.hi differ
diff --git a/dist/build/Data/Enumerable/FunctionEquality.o b/dist/build/Data/Enumerable/FunctionEquality.o
new file mode 100644
Binary files /dev/null and b/dist/build/Data/Enumerable/FunctionEquality.o differ
diff --git a/dist/build/Data/Enumerable/FunctionEquality.p_hi b/dist/build/Data/Enumerable/FunctionEquality.p_hi
new file mode 100644
Binary files /dev/null and b/dist/build/Data/Enumerable/FunctionEquality.p_hi differ
diff --git a/dist/build/Data/Enumerable/FunctionEquality.p_o b/dist/build/Data/Enumerable/FunctionEquality.p_o
new file mode 100644
Binary files /dev/null and b/dist/build/Data/Enumerable/FunctionEquality.p_o differ
diff --git a/dist/build/HSenumerable-0.0.1.o b/dist/build/HSenumerable-0.0.1.o
new file mode 100644
Binary files /dev/null and b/dist/build/HSenumerable-0.0.1.o differ
diff --git a/dist/build/autogen/Paths_enumerable.hs b/dist/build/autogen/Paths_enumerable.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Paths_enumerable.hs
@@ -0,0 +1,29 @@
+module Paths_enumerable (
+    version,
+    getBinDir, getLibDir, getDataDir, getLibexecDir,
+    getDataFileName
+  ) where
+
+import Data.Version (Version(..))
+import System.Environment (getEnv)
+
+version :: Version
+version = Version {versionBranch = [0,0,1], versionTags = []}
+
+bindir, libdir, datadir, libexecdir :: FilePath
+
+bindir     = "/Users/pumpkin/.cabal/bin"
+libdir     = "/Users/pumpkin/.cabal/lib/enumerable-0.0.1/ghc-6.10.3"
+datadir    = "/Users/pumpkin/.cabal/share/enumerable-0.0.1"
+libexecdir = "/Users/pumpkin/.cabal/libexec"
+
+getBinDir, getLibDir, getDataDir, getLibexecDir :: IO FilePath
+getBinDir = catch (getEnv "enumerable_bindir") (\_ -> return bindir)
+getLibDir = catch (getEnv "enumerable_libdir") (\_ -> return libdir)
+getDataDir = catch (getEnv "enumerable_datadir") (\_ -> return datadir)
+getLibexecDir = catch (getEnv "enumerable_libexecdir") (\_ -> return libexecdir)
+
+getDataFileName :: FilePath -> IO FilePath
+getDataFileName name = do
+  dir <- getDataDir
+  return (dir ++ "/" ++ name)
diff --git a/dist/build/autogen/Paths_tagged.hs b/dist/build/autogen/Paths_tagged.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Paths_tagged.hs
@@ -0,0 +1,29 @@
+module Paths_tagged (
+    version,
+    getBinDir, getLibDir, getDataDir, getLibexecDir,
+    getDataFileName
+  ) where
+
+import Data.Version (Version(..))
+import System.Environment (getEnv)
+
+version :: Version
+version = Version {versionBranch = [0,0,1], versionTags = []}
+
+bindir, libdir, datadir, libexecdir :: FilePath
+
+bindir     = "/Users/pumpkin/.cabal/bin"
+libdir     = "/Users/pumpkin/.cabal/lib/tagged-0.0.1/ghc-6.10.3"
+datadir    = "/Users/pumpkin/.cabal/share/tagged-0.0.1"
+libexecdir = "/Users/pumpkin/.cabal/libexec"
+
+getBinDir, getLibDir, getDataDir, getLibexecDir :: IO FilePath
+getBinDir = catch (getEnv "tagged_bindir") (\_ -> return bindir)
+getLibDir = catch (getEnv "tagged_libdir") (\_ -> return libdir)
+getDataDir = catch (getEnv "tagged_datadir") (\_ -> return datadir)
+getLibexecDir = catch (getEnv "tagged_libexecdir") (\_ -> return libexecdir)
+
+getDataFileName :: FilePath -> IO FilePath
+getDataFileName name = do
+  dir <- getDataDir
+  return (dir ++ "/" ++ name)
diff --git a/dist/build/autogen/cabal_macros.h b/dist/build/autogen/cabal_macros.h
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/cabal_macros.h
@@ -0,0 +1,20 @@
+/* DO NOT EDIT: This file is automatically generated by Cabal */
+
+/* package base-4.1.0.0 */
+#define MIN_VERSION_base(major1,major2,minor) \
+  (major1) <  4 || \
+  (major1) == 4 && (major2) <  1 || \
+  (major1) == 4 && (major2) == 1 && (minor) <= 0
+
+/* package control-monad-omega-0.3 */
+#define MIN_VERSION_control_monad_omega(major1,major2,minor) \
+  (major1) <  0 || \
+  (major1) == 0 && (major2) <  3 || \
+  (major1) == 0 && (major2) == 3 && (minor) <= 0
+
+/* package tagged-0.0 */
+#define MIN_VERSION_tagged(major1,major2,minor) \
+  (major1) <  0 || \
+  (major1) == 0 && (major2) <  0 || \
+  (major1) == 0 && (major2) == 0 && (minor) <= 0
+
diff --git a/dist/build/libHSenumerable-0.0.1.a b/dist/build/libHSenumerable-0.0.1.a
new file mode 100644
Binary files /dev/null and b/dist/build/libHSenumerable-0.0.1.a differ
diff --git a/dist/build/libHSenumerable-0.0.1_p.a b/dist/build/libHSenumerable-0.0.1_p.a
new file mode 100644
Binary files /dev/null and b/dist/build/libHSenumerable-0.0.1_p.a differ
diff --git a/dist/doc/html/enumerable/Data-Enumerable-ControversialFunctionEquality.html b/dist/doc/html/enumerable/Data-Enumerable-ControversialFunctionEquality.html
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/enumerable/Data-Enumerable-ControversialFunctionEquality.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Data.Enumerable.ControversialFunctionEquality</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+><SCRIPT TYPE="text/javascript"
+>window.onload = function () {setSynopsis("mini_Data-Enumerable-ControversialFunctionEquality.html")};</SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>enumerable-0.0.1: Provides a typeclass for enumerating all values in types</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Data.Enumerable.ControversialFunctionEquality</FONT
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 2.4.2</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/dist/doc/html/enumerable/Data-Enumerable-FunctionEquality.html b/dist/doc/html/enumerable/Data-Enumerable-FunctionEquality.html
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/enumerable/Data-Enumerable-FunctionEquality.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Data.Enumerable.FunctionEquality</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+><SCRIPT TYPE="text/javascript"
+>window.onload = function () {setSynopsis("mini_Data-Enumerable-FunctionEquality.html")};</SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>enumerable-0.0.1: Provides a typeclass for enumerating all values in types</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Data.Enumerable.FunctionEquality</FONT
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 2.4.2</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/dist/doc/html/enumerable/Data-Enumerable.html b/dist/doc/html/enumerable/Data-Enumerable.html
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/enumerable/Data-Enumerable.html
@@ -0,0 +1,919 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Data.Enumerable</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+><SCRIPT TYPE="text/javascript"
+>window.onload = function () {setSynopsis("mini_Data-Enumerable.html")};</SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>enumerable-0.0.1: Provides a typeclass for enumerating all values in types</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Data.Enumerable</FONT
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>class</SPAN
+>  <A NAME="t:Enumerable"
+><A NAME="t%3AEnumerable"
+></A
+></A
+><B
+>Enumerable</B
+> a  <SPAN CLASS="keyword"
+>where</SPAN
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+>Methods</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A NAME="v:enumerate"
+><A NAME="v%3Aenumerate"
+></A
+></A
+><B
+>enumerate</B
+> :: [a]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v:enumerateTotal"
+><A NAME="v%3AenumerateTotal"
+></A
+></A
+><B
+>enumerateTotal</B
+> :: [a]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v:enumeratePartial"
+><A NAME="v%3AenumeratePartial"
+></A
+></A
+><B
+>enumeratePartial</B
+> :: [a]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v:isPartial"
+><A NAME="v%3AisPartial"
+></A
+></A
+><B
+>isPartial</B
+> :: <A HREF="/Users/pumpkin/.cabal/share/doc/tagged-0.0/html/Data-Tagged.html#t%3ATagged"
+>Tagged</A
+> a <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Enumerable')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:Enumerable" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"
+>Char</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3ADouble"
+>Double</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AFloat"
+>Float</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Int.html#t%3AInt8"
+>Int8</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Int.html#t%3AInt16"
+>Int16</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Int.html#t%3AInt32"
+>Int32</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Int.html#t%3AInt64"
+>Int64</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/integer/GHC-Integer.html#t%3AInteger"
+>Integer</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Ordering.html#t%3AOrdering"
+>Ordering</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Word.html#t%3AWord"
+>Word</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Word.html#t%3AWord8"
+>Word8</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Word.html#t%3AWord16"
+>Word16</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Word.html#t%3AWord32"
+>Word32</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Word.html#t%3AWord64"
+>Word64</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Unit.html#t%3A%28%29"
+>()</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> a =&gt; <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> ([] a)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>(<A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> a, <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Prelude.html#t%3AIntegral"
+>Integral</A
+> a) =&gt; <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> (<A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Ratio.html#t%3ARatio"
+>Ratio</A
+> a)</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> a =&gt; <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> (<A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
+>Maybe</A
+> a)</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> a =&gt; <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> (<A HREF="Data-Enumerable.html#t%3APartial"
+>Partial</A
+> a)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>(<A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> a, <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> b, <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"
+>Eq</A
+> a) =&gt; <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> (a -&gt; b)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>(<A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> a, <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> b) =&gt; <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> (<A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"
+>Either</A
+> a b)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>(<A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> a, <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> b) =&gt; <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> (<A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Tuple.html#t%3A%28%2C%29"
+>(,)</A
+> a b)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>(<A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> a, <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> b, <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> c) =&gt; <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> (<A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%29"
+>(,,)</A
+> a b c)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>(<A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> a, <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> b, <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> c, <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> d) =&gt; <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> (<A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%29"
+>(,,,)</A
+> a b c d)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>(<A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> a, <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> b, <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> c, <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> d, <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> e) =&gt; <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> (<A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%29"
+>(,,,,)</A
+> a b c d e)</TD
+></TR
+></TABLE
+></DIV
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+>  <A NAME="t:Cardinal"
+><A NAME="t%3ACardinal"
+></A
+></A
+><B
+>Cardinal</B
+>  </TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="section4"
+>Constructors</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v:Finite"
+><A NAME="v%3AFinite"
+></A
+></A
+><B
+>Finite</B
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/integer/GHC-Integer.html#t%3AInteger"
+>Integer</A
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v:Aleph"
+><A NAME="v%3AAleph"
+></A
+></A
+><B
+>Aleph</B
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/integer/GHC-Integer.html#t%3AInteger"
+>Integer</A
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>class</SPAN
+> <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> a =&gt; <A NAME="t:FinitelyEnumerable"
+><A NAME="t%3AFinitelyEnumerable"
+></A
+></A
+><B
+>FinitelyEnumerable</B
+> a  <SPAN CLASS="keyword"
+>where</SPAN
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+>Methods</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A NAME="v:cardinality"
+><A NAME="v%3Acardinality"
+></A
+></A
+><B
+>cardinality</B
+> :: <A HREF="/Users/pumpkin/.cabal/share/doc/tagged-0.0/html/Data-Tagged.html#t%3ATagged"
+>Tagged</A
+> a <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/integer/GHC-Integer.html#t%3AInteger"
+>Integer</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:FinitelyEnumerable')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:FinitelyEnumerable" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"
+>Char</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3ADouble"
+>Double</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AFloat"
+>Float</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Int.html#t%3AInt8"
+>Int8</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Int.html#t%3AInt16"
+>Int16</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Int.html#t%3AInt32"
+>Int32</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Int.html#t%3AInt64"
+>Int64</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Ordering.html#t%3AOrdering"
+>Ordering</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Word.html#t%3AWord"
+>Word</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Word.html#t%3AWord8"
+>Word8</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Word.html#t%3AWord16"
+>Word16</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Word.html#t%3AWord32"
+>Word32</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Word.html#t%3AWord64"
+>Word64</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Unit.html#t%3A%28%29"
+>()</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>(<A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> a, <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Prelude.html#t%3AIntegral"
+>Integral</A
+> a) =&gt; <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> (<A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Ratio.html#t%3ARatio"
+>Ratio</A
+> a)</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> a =&gt; <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> (<A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
+>Maybe</A
+> a)</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> a =&gt; <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> (<A HREF="Data-Enumerable.html#t%3APartial"
+>Partial</A
+> a)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>(<A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> a, <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> b, <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Eq.html#t%3AEq"
+>Eq</A
+> a) =&gt; <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> (a -&gt; b)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>(<A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> a, <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> b) =&gt; <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> (<A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"
+>Either</A
+> a b)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>(<A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> a, <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> b) =&gt; <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> (<A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Tuple.html#t%3A%28%2C%29"
+>(,)</A
+> a b)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>(<A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> a, <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> b, <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> c) =&gt; <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> (<A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%29"
+>(,,)</A
+> a b c)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>(<A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> a, <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> b, <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> c, <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> d) =&gt; <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> (<A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%29"
+>(,,,)</A
+> a b c d)</TD
+></TR
+><TR
+><TD CLASS="decl"
+>(<A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> a, <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> b, <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> c, <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> d, <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> e) =&gt; <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> (<A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%29"
+>(,,,,)</A
+> a b c d e)</TD
+></TR
+></TABLE
+></DIV
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v:enumerateInterleaved"
+><A NAME="v%3AenumerateInterleaved"
+></A
+></A
+><B
+>enumerateInterleaved</B
+> :: (<A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Prelude.html#t%3AEnum"
+>Enum</A
+> a, <A HREF="/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/Prelude.html#t%3ANum"
+>Num</A
+> a) =&gt; [a]</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>newtype</SPAN
+>  <A NAME="t:Partial"
+><A NAME="t%3APartial"
+></A
+></A
+><B
+>Partial</B
+> a </TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="section4"
+>Constructors</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v:Partial"
+><A NAME="v%3APartial"
+></A
+></A
+><B
+>Partial</B
+> a</TD
+><TD CLASS="rdoc"
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Partial')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:Partial" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> a =&gt; <A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>FinitelyEnumerable</A
+> (<A HREF="Data-Enumerable.html#t%3APartial"
+>Partial</A
+> a)</TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> a =&gt; <A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Enumerable</A
+> (<A HREF="Data-Enumerable.html#t%3APartial"
+>Partial</A
+> a)</TD
+></TR
+></TABLE
+></DIV
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 2.4.2</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/dist/doc/html/enumerable/doc-index.html b/dist/doc/html/enumerable/doc-index.html
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/enumerable/doc-index.html
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>enumerable-0.0.1: Provides a typeclass for enumerating all values in types (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>enumerable-0.0.1: Provides a typeclass for enumerating all values in types</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD COLSPAN="2" STYLE="padding-top:5px;"
+><FORM onsubmit="full_search(); return false;" ACTION=""
+>Search: <INPUT ID="searchbox" onkeyup="quick_search()"
+> <INPUT VALUE="Search" TYPE="submit"
+> <SPAN ID="searchmsg"
+> </SPAN
+></FORM
+></TD
+></TR
+><TR
+><TD
+><TABLE ID="indexlist" CELLPADDING="0" CELLSPACING="5"
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Aleph</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Enumerable.html#v%3AAleph"
+>Data.Enumerable</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Cardinal</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Enumerable.html#t%3ACardinal"
+>Data.Enumerable</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>cardinality</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Enumerable.html#v%3Acardinality"
+>Data.Enumerable</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Enumerable</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Enumerable.html#t%3AEnumerable"
+>Data.Enumerable</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>enumerate</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Enumerable.html#v%3Aenumerate"
+>Data.Enumerable</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>enumerateInterleaved</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Enumerable.html#v%3AenumerateInterleaved"
+>Data.Enumerable</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>enumeratePartial</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Enumerable.html#v%3AenumeratePartial"
+>Data.Enumerable</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>enumerateTotal</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Enumerable.html#v%3AenumerateTotal"
+>Data.Enumerable</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>Finite</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Enumerable.html#v%3AFinite"
+>Data.Enumerable</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>FinitelyEnumerable</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable"
+>Data.Enumerable</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>isPartial</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Enumerable.html#v%3AisPartial"
+>Data.Enumerable</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry" COLSPAN="2"
+>Partial</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Enumerable.html#t%3APartial"
+>Data.Enumerable</A
+></TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+><A HREF="Data-Enumerable.html#v%3APartial"
+>Data.Enumerable</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/dist/doc/html/enumerable/enumerable.haddock b/dist/doc/html/enumerable/enumerable.haddock
new file mode 100644
Binary files /dev/null and b/dist/doc/html/enumerable/enumerable.haddock differ
diff --git a/dist/doc/html/enumerable/frames.html b/dist/doc/html/enumerable/frames.html
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/enumerable/frames.html
@@ -0,0 +1,27 @@
+<html>
+<head>
+<script type="text/javascript"><!--
+/*
+
+  The synopsis frame needs to be updated using javascript, so we hide
+  it by default and only show it if javascript is enabled.
+
+  TODO: provide some means to disable it.
+*/
+function load() {
+  var d = document.getElementById("inner-fs");
+  d.rows = "50%,50%";
+}
+--></script>
+<frameset id="outer-fs" cols="25%,75%" onload="load()">
+  <frameset id="inner-fs" rows="100%,0%">
+
+    <frame src="index-frames.html" name="modules">
+    <frame src="" name="synopsis">
+
+  </frameset>
+  <frame src="index.html" name="main">
+
+</frameset>
+
+</html>
diff --git a/dist/doc/html/enumerable/haddock-util.js b/dist/doc/html/enumerable/haddock-util.js
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/enumerable/haddock-util.js
@@ -0,0 +1,139 @@
+// Haddock JavaScript utilities
+function toggle(button,id)
+{
+   var n = document.getElementById(id).style;
+   if (n.display == "none")
+   {
+    button.src = "minus.gif";
+    n.display = "block";
+   }
+   else
+   {
+    button.src = "plus.gif";
+    n.display = "none";
+   }
+}
+
+
+var max_results = 75; // 50 is not enough to search for map in the base libraries
+var shown_range = null;
+var last_search = null;
+
+function quick_search()
+{
+    perform_search(false);
+}
+
+function full_search()
+{
+    perform_search(true);
+}
+
+
+function perform_search(full)
+{
+    var text = document.getElementById("searchbox").value.toLowerCase();
+    if (text == last_search && !full) return;
+    last_search = text;
+    
+    var table = document.getElementById("indexlist");
+    var status = document.getElementById("searchmsg");
+    var children = table.firstChild.childNodes;
+    
+    // first figure out the first node with the prefix
+    var first = bisect(-1);
+    var last = (first == -1 ? -1 : bisect(1));
+
+    if (first == -1)
+    {
+        table.className = "";
+        status.innerHTML = "No results found, displaying all";
+    }
+    else if (first == 0 && last == children.length - 1)
+    {
+        table.className = "";
+        status.innerHTML = "";
+    }
+    else if (last - first >= max_results && !full)
+    {
+        table.className = "";
+        status.innerHTML = "More than " + max_results + ", press Search to display";
+    }
+    else
+    {
+        // decide what you need to clear/show
+        if (shown_range)
+            setclass(shown_range[0], shown_range[1], "indexrow");
+        setclass(first, last, "indexshow");
+        shown_range = [first, last];
+        table.className = "indexsearch";
+        status.innerHTML = "";
+    }
+
+    
+    function setclass(first, last, status)
+    {
+        for (var i = first; i <= last; i++)
+        {
+            children[i].className = status;
+        }
+    }
+    
+    
+    // do a binary search, treating 0 as ...
+    // return either -1 (no 0's found) or location of most far match
+    function bisect(dir)
+    {
+        var first = 0, finish = children.length - 1;
+        var mid, success = false;
+
+        while (finish - first > 3)
+        {
+            mid = Math.floor((finish + first) / 2);
+
+            var i = checkitem(mid);
+            if (i == 0) i = dir;
+            if (i == -1)
+                finish = mid;
+            else
+                first = mid;
+        }
+        var a = (dir == 1 ? first : finish);
+        var b = (dir == 1 ? finish : first);
+        for (var i = b; i != a - dir; i -= dir)
+        {
+            if (checkitem(i) == 0) return i;
+        }
+        return -1;
+    }    
+    
+    
+    // from an index, decide what the result is
+    // 0 = match, -1 is lower, 1 is higher
+    function checkitem(i)
+    {
+        var s = getitem(i).toLowerCase().substr(0, text.length);
+        if (s == text) return 0;
+        else return (s > text ? -1 : 1);
+    }
+    
+    
+    // from an index, get its string
+    // this abstracts over alternates
+    function getitem(i)
+    {
+        for ( ; i >= 0; i--)
+        {
+            var s = children[i].firstChild.firstChild.data;
+            if (s.indexOf(' ') == -1)
+                return s;
+        }
+        return ""; // should never be reached
+    }
+}
+
+function setSynopsis(filename) {
+    if (parent.window.synopsis) {
+      parent.window.synopsis.location = filename;
+    }
+}
diff --git a/dist/doc/html/enumerable/haddock.css b/dist/doc/html/enumerable/haddock.css
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/enumerable/haddock.css
@@ -0,0 +1,297 @@
+/* -------- Global things --------- */
+
+BODY { 
+  background-color: #ffffff;
+  color: #000000;
+  font-family: sans-serif;
+  padding: 0 0;
+  } 
+
+A:link    { color: #0000e0; text-decoration: none }
+A:visited { color: #0000a0; text-decoration: none }
+A:hover   { background-color: #e0e0ff; text-decoration: none }
+
+TABLE.vanilla {
+  width: 100%;
+  border-width: 0px;
+  /* I can't seem to specify cellspacing or cellpadding properly using CSS... */
+}
+
+TABLE.vanilla2 {
+  border-width: 0px;
+}
+
+/* <TT> font is a little too small in MSIE */
+TT  { font-size: 100%; }
+PRE { font-size: 100%; }
+
+LI P { margin: 0pt } 
+
+TD {
+  border-width: 0px;
+}
+
+TABLE.narrow {
+  border-width: 0px;
+}
+
+TD.s8  {  height: 8px;  }
+TD.s15 {  height: 15px; }
+
+SPAN.keyword { text-decoration: underline; }
+
+/* Resize the buttom image to match the text size */
+IMG.coll { width : 0.75em; height: 0.75em; margin-bottom: 0; margin-right: 0.5em }
+
+/* --------- Contents page ---------- */
+
+DIV.node {
+  padding-left: 3em;
+}
+
+DIV.cnode {
+  padding-left: 1.75em;
+}
+
+SPAN.pkg {
+  position: absolute;
+  left: 50em;
+}
+
+/* --------- Documentation elements ---------- */
+
+TD.children {
+  padding-left: 25px;
+  }
+
+TD.synopsis {
+  padding: 2px;
+  background-color: #f0f0f0;
+  font-family: monospace
+ }
+
+TD.decl { 
+  padding: 2px;
+  background-color: #f0f0f0; 
+  font-family: monospace;
+  vertical-align: top;
+  }
+
+TD.topdecl {
+  padding: 2px;
+  background-color: #f0f0f0;
+  font-family: monospace;
+  vertical-align: top;
+}
+
+TABLE.declbar {
+  border-spacing: 0px;
+ }
+
+TD.declname {
+  width: 100%;
+ }
+
+TD.declbut {
+  padding-left: 5px;
+  padding-right: 5px;
+  border-left-width: 1px;
+  border-left-color: #000099;
+  border-left-style: solid;
+  white-space: nowrap;
+  font-size: small;
+ }
+
+/* 
+  arg is just like decl, except that wrapping is not allowed.  It is
+  used for function and constructor arguments which have a text box
+  to the right, where if wrapping is allowed the text box squashes up
+  the declaration by wrapping it.
+*/
+TD.arg { 
+  padding: 2px;
+  background-color: #f0f0f0; 
+  font-family: monospace;
+  vertical-align: top;
+  white-space: nowrap;
+  }
+
+TD.recfield { padding-left: 20px }
+
+TD.doc  { 
+  padding-top: 2px;
+  padding-left: 10px;
+  }
+
+TD.ndoc  { 
+  padding: 2px;
+  }
+
+TD.rdoc  { 
+  padding: 2px;
+  padding-left: 10px;
+  width: 100%;
+  }
+
+TD.body  { 
+  padding-left: 10px
+  }
+
+TD.pkg {
+  width: 100%;
+  padding-left: 10px
+}
+
+TABLE.indexsearch TR.indexrow {
+  display: none;
+}
+TABLE.indexsearch TR.indexshow {
+  display: table-row;
+}
+
+TD.indexentry {
+  vertical-align: top;
+  padding-right: 10px
+  }
+
+TD.indexannot {
+  vertical-align: top;
+  padding-left: 20px;
+  white-space: nowrap
+  }
+
+TD.indexlinks {
+  width: 100%
+  }
+
+/* ------- Section Headings ------- */
+
+TD.section1 {
+  padding-top: 15px;
+  font-weight: bold;
+  font-size: 150%
+  }
+
+TD.section2 {
+  padding-top: 10px;
+  font-weight: bold;
+  font-size: 130%
+  }
+
+TD.section3 {
+  padding-top: 5px;
+  font-weight: bold;
+  font-size: 110%
+  }
+
+TD.section4 {
+  font-weight: bold;
+  font-size: 100%
+  }
+
+/* -------------- The title bar at the top of the page */
+
+TD.infohead {
+  color: #ffffff;
+  font-weight: bold;
+  padding-right: 10px;
+  text-align: left;
+}
+
+TD.infoval {
+  color: #ffffff;
+  padding-right: 10px;
+  text-align: left;
+}
+
+TD.topbar {
+  background-color: #000099;
+  padding: 5px;
+}
+
+TD.title {
+  color: #ffffff;
+  padding-left: 10px;
+  width: 100%
+  }
+
+TD.topbut {
+  padding-left: 5px;
+  padding-right: 5px;
+  border-left-width: 1px;
+  border-left-color: #ffffff;
+  border-left-style: solid;
+  white-space: nowrap;
+  }
+
+TD.topbut A:link {
+  color: #ffffff
+  }
+
+TD.topbut A:visited {
+  color: #ffff00
+  }
+
+TD.topbut A:hover {
+  background-color: #6060ff;
+  }
+
+TD.topbut:hover {
+  background-color: #6060ff
+  }
+
+TD.modulebar { 
+  background-color: #0077dd;
+  padding: 5px;
+  border-top-width: 1px;
+  border-top-color: #ffffff;
+  border-top-style: solid;
+  }
+
+/* --------- The page footer --------- */
+
+TD.botbar {
+  background-color: #000099;
+  color: #ffffff;
+  padding: 5px
+  }
+TD.botbar A:link {
+  color: #ffffff;
+  text-decoration: underline
+  }
+TD.botbar A:visited {
+  color: #ffff00
+  }
+TD.botbar A:hover {
+  background-color: #6060ff
+  }
+
+/* --------- Mini Synopsis for Frame View --------- */
+
+.outer {
+  margin: 0 0;
+  padding: 0 0;
+}
+
+.mini-synopsis {
+  padding: 0.25em 0.25em;
+}
+
+.mini-synopsis H1 { font-size: 130%; }
+.mini-synopsis H2 { font-size: 110%; }
+.mini-synopsis H3 { font-size: 100%; }
+.mini-synopsis H1, .mini-synopsis H2, .mini-synopsis H3 {
+  margin-top: 0.5em;
+  margin-bottom: 0.25em;
+  padding: 0 0;
+}
+
+.mini-synopsis H1 { border-bottom: 1px solid #ccc; }
+
+.mini-topbar {
+  font-size: 130%;
+  background: #0077dd;
+  padding: 0.25em;
+}
+
+
diff --git a/dist/doc/html/enumerable/haskell_icon.gif b/dist/doc/html/enumerable/haskell_icon.gif
new file mode 100644
Binary files /dev/null and b/dist/doc/html/enumerable/haskell_icon.gif differ
diff --git a/dist/doc/html/enumerable/index-frames.html b/dist/doc/html/enumerable/index-frames.html
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/enumerable/index-frames.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>enumerable-0.0.1: Provides a typeclass for enumerating all values in types</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><P
+><A HREF="Data-Enumerable.html" TARGET="main"
+>Data.Enumerable</A
+><BR
+><A HREF="Data-Enumerable-ControversialFunctionEquality.html" TARGET="main"
+>Data.Enumerable.ControversialFunctionEquality</A
+><BR
+><A HREF="Data-Enumerable-FunctionEquality.html" TARGET="main"
+>Data.Enumerable.FunctionEquality</A
+><BR
+></P
+></TABLE
+></BODY
+></HTML
+>
diff --git a/dist/doc/html/enumerable/index.html b/dist/doc/html/enumerable/index.html
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/enumerable/index.html
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>enumerable-0.0.1: Provides a typeclass for enumerating all values in types</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>enumerable-0.0.1: Provides a typeclass for enumerating all values in types</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>enumerable-0.0.1: Provides a typeclass for enumerating all values in types</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Enumerate anything, including functions of enumerable types!
+</TD
+></TR
+><TR
+><TD CLASS="section1"
+>Modules</TD
+></TR
+><TR
+><TD
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD STYLE="width: 50em"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:0')" ALT="show/hide"
+>Data</TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:0" STYLE="display:block;"
+><TR
+><TD STYLE="width: 48em"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:1')" ALT="show/hide"
+><A HREF="Data-Enumerable.html"
+>Data.Enumerable</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:1" STYLE="display:block;"
+><TR
+><TD STYLE="padding-left: 1.25em;width: 46em"
+><A HREF="Data-Enumerable-ControversialFunctionEquality.html"
+>Data.Enumerable.ControversialFunctionEquality</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding-left: 1.25em;width: 46em"
+><A HREF="Data-Enumerable-FunctionEquality.html"
+>Data.Enumerable.FunctionEquality</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 2.4.2</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/dist/doc/html/enumerable/mini_Data-Enumerable-ControversialFunctionEquality.html b/dist/doc/html/enumerable/mini_Data-Enumerable-ControversialFunctionEquality.html
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/enumerable/mini_Data-Enumerable-ControversialFunctionEquality.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Data.Enumerable.ControversialFunctionEquality</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><DIV CLASS="outer"
+><DIV CLASS="mini-topbar"
+>Data.Enumerable.ControversialFunctionEquality</DIV
+><DIV CLASS="mini-synopsis"
+></DIV
+></DIV
+></BODY
+></HTML
+>
diff --git a/dist/doc/html/enumerable/mini_Data-Enumerable-FunctionEquality.html b/dist/doc/html/enumerable/mini_Data-Enumerable-FunctionEquality.html
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/enumerable/mini_Data-Enumerable-FunctionEquality.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Data.Enumerable.FunctionEquality</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><DIV CLASS="outer"
+><DIV CLASS="mini-topbar"
+>Data.Enumerable.FunctionEquality</DIV
+><DIV CLASS="mini-synopsis"
+></DIV
+></DIV
+></BODY
+></HTML
+>
diff --git a/dist/doc/html/enumerable/mini_Data-Enumerable.html b/dist/doc/html/enumerable/mini_Data-Enumerable.html
new file mode 100644
--- /dev/null
+++ b/dist/doc/html/enumerable/mini_Data-Enumerable.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Data.Enumerable</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><DIV CLASS="outer"
+><DIV CLASS="mini-topbar"
+>Data.Enumerable</DIV
+><DIV CLASS="mini-synopsis"
+><DIV CLASS="decl"
+><SPAN CLASS="keyword"
+>class</SPAN
+>&nbsp;<A HREF="Data-Enumerable.html#t%3AEnumerable" TARGET="main"
+>Enumerable</A
+> a</DIV
+> <DIV CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+>&nbsp;<A HREF="Data-Enumerable.html#t%3ACardinal" TARGET="main"
+>Cardinal</A
+> </DIV
+> <DIV CLASS="decl"
+><SPAN CLASS="keyword"
+>class</SPAN
+>&nbsp;<A HREF="Data-Enumerable.html#t%3AFinitelyEnumerable" TARGET="main"
+>FinitelyEnumerable</A
+> a</DIV
+> <DIV CLASS="decl"
+><A HREF="Data-Enumerable.html#v%3AenumerateInterleaved" TARGET="main"
+>enumerateInterleaved</A
+></DIV
+> <DIV CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+>&nbsp;<A HREF="Data-Enumerable.html#t%3APartial" TARGET="main"
+>Partial</A
+> a</DIV
+></DIV
+></DIV
+></BODY
+></HTML
+>
diff --git a/dist/doc/html/enumerable/minus.gif b/dist/doc/html/enumerable/minus.gif
new file mode 100644
Binary files /dev/null and b/dist/doc/html/enumerable/minus.gif differ
diff --git a/dist/doc/html/enumerable/plus.gif b/dist/doc/html/enumerable/plus.gif
new file mode 100644
Binary files /dev/null and b/dist/doc/html/enumerable/plus.gif differ
diff --git a/dist/installed-pkg-config b/dist/installed-pkg-config
new file mode 100644
--- /dev/null
+++ b/dist/installed-pkg-config
@@ -0,0 +1,30 @@
+name: enumerable
+version: 0.0.1
+license: BSD3
+copyright: 2009 Daniel Peebles
+maintainer: Daniel Peebles <pumpkingod@gmail.com>
+stability: experimental
+homepage:
+package-url:
+description: Enumerate anything, including functions of enumerable types!
+category: Data
+author: Daniel Peebles
+exposed: True
+exposed-modules: Data.Enumerable Data.Enumerable.FunctionEquality
+                 Data.Enumerable.ControversialFunctionEquality
+hidden-modules:
+import-dirs: /Users/pumpkin/.cabal/lib/enumerable-0.0.1/ghc-6.10.3
+library-dirs: /Users/pumpkin/.cabal/lib/enumerable-0.0.1/ghc-6.10.3
+hs-libraries: HSenumerable-0.0.1
+extra-libraries:
+extra-ghci-libraries:
+include-dirs:
+includes:
+depends: base-4.1.0.0 control-monad-omega-0.3 tagged-0.0
+hugs-options:
+cc-options:
+ld-options:
+framework-dirs:
+frameworks:
+haddock-interfaces: /Users/pumpkin/.cabal/share/doc/enumerable-0.0.1/html/enumerable.haddock
+haddock-html: /Users/pumpkin/.cabal/share/doc/enumerable-0.0.1/html
diff --git a/dist/setup-config b/dist/setup-config
new file mode 100644
--- /dev/null
+++ b/dist/setup-config
@@ -0,0 +1,2 @@
+Saved package config for enumerable-0.0.1 written by Cabal-1.6.0.3 using ghc-6.10
+LocalBuildInfo {installDirTemplates = InstallDirs {prefix = "/Users/pumpkin/.cabal", bindir = "$prefix/bin", libdir = "$prefix/lib", libsubdir = "$pkgid/$compiler", dynlibdir = "$libdir", libexecdir = "$prefix/libexec", progdir = "$libdir/hugs/programs", includedir = "$libdir/$libsubdir/include", datadir = "$prefix/share", datasubdir = "$pkgid", docdir = "$datadir/doc/$pkgid", mandir = "$datadir/man", htmldir = "$docdir/html", haddockdir = "$htmldir"}, compiler = Compiler {compilerId = CompilerId GHC (Version {versionBranch = [6,10,3], versionTags = []}), compilerExtensions = [(CPP,"-XCPP"),(PostfixOperators,"-XPostfixOperators"),(PatternGuards,"-XPatternGuards"),(UnicodeSyntax,"-XUnicodeSyntax"),(MagicHash,"-XMagicHash"),(PolymorphicComponents,"-XPolymorphicComponents"),(ExistentialQuantification,"-XExistentialQuantification"),(KindSignatures,"-XKindSignatures"),(EmptyDataDecls,"-XEmptyDataDecls"),(ParallelListComp,"-XParallelListComp"),(TransformListComp,"-XTransformListComp"),(ForeignFunctionInterface,"-XForeignFunctionInterface"),(UnliftedFFITypes,"-XUnliftedFFITypes"),(LiberalTypeSynonyms,"-XLiberalTypeSynonyms"),(Rank2Types,"-XRank2Types"),(RankNTypes,"-XRankNTypes"),(ImpredicativeTypes,"-XImpredicativeTypes"),(TypeOperators,"-XTypeOperators"),(RecursiveDo,"-XRecursiveDo"),(Arrows,"-XArrows"),(UnknownExtension "PArr","-XPArr"),(TemplateHaskell,"-XTemplateHaskell"),(QuasiQuotes,"-XQuasiQuotes"),(Generics,"-XGenerics"),(NoImplicitPrelude,"-XNoImplicitPrelude"),(RecordWildCards,"-XRecordWildCards"),(NamedFieldPuns,"-XNamedFieldPuns"),(RecordPuns,"-XRecordPuns"),(DisambiguateRecordFields,"-XDisambiguateRecordFields"),(OverloadedStrings,"-XOverloadedStrings"),(GADTs,"-XGADTs"),(ViewPatterns,"-XViewPatterns"),(TypeFamilies,"-XTypeFamilies"),(BangPatterns,"-XBangPatterns"),(NoMonomorphismRestriction,"-XNoMonomorphismRestriction"),(NoMonoPatBinds,"-XNoMonoPatBinds"),(RelaxedPolyRec,"-XRelaxedPolyRec"),(ExtendedDefaultRules,"-XExtendedDefaultRules"),(ImplicitParams,"-XImplicitParams"),(ScopedTypeVariables,"-XScopedTypeVariables"),(PatternSignatures,"-XPatternSignatures"),(UnboxedTuples,"-XUnboxedTuples"),(StandaloneDeriving,"-XStandaloneDeriving"),(DeriveDataTypeable,"-XDeriveDataTypeable"),(TypeSynonymInstances,"-XTypeSynonymInstances"),(FlexibleContexts,"-XFlexibleContexts"),(FlexibleInstances,"-XFlexibleInstances"),(ConstrainedClassMethods,"-XConstrainedClassMethods"),(MultiParamTypeClasses,"-XMultiParamTypeClasses"),(FunctionalDependencies,"-XFunctionalDependencies"),(GeneralizedNewtypeDeriving,"-XGeneralizedNewtypeDeriving"),(OverlappingInstances,"-XOverlappingInstances"),(UndecidableInstances,"-XUndecidableInstances"),(IncoherentInstances,"-XIncoherentInstances"),(PackageImports,"-XPackageImports"),(NewQualifiedOperators,"-XNewQualifiedOperators")]}, buildDir = "dist/build", scratchDir = "dist/scratch", packageDeps = [PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,1,0,0], versionTags = []}},PackageIdentifier {pkgName = PackageName "control-monad-omega", pkgVersion = Version {versionBranch = [0,3], versionTags = []}},PackageIdentifier {pkgName = PackageName "tagged", pkgVersion = Version {versionBranch = [0,0], versionTags = []}}], installedPkgs = PackageIndex (fromList [(PackageName "base",[InstalledPackageInfo {package = PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [3,0,3,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This is a backwards-compatible version of the base package.\nIt depends on a later version of base, and was probably supplied\nwith your compiler when it was installed.", category = "", exposed = True, exposedModules = [ModuleName ["Data","Generics"],ModuleName ["Data","Generics","Aliases"],ModuleName ["Data","Generics","Basics"],ModuleName ["Data","Generics","Instances"],ModuleName ["Data","Generics","Schemes"],ModuleName ["Data","Generics","Text"],ModuleName ["Data","Generics","Twins"],ModuleName ["Foreign","Concurrent"],ModuleName ["GHC","Arr"],ModuleName ["GHC","Base"],ModuleName ["GHC","Conc"],ModuleName ["GHC","ConsoleHandler"],ModuleName ["GHC","Desugar"],ModuleName ["GHC","Dotnet"],ModuleName ["GHC","Enum"],ModuleName ["GHC","Environment"],ModuleName ["GHC","Err"],ModuleName ["GHC","Exception"],ModuleName ["GHC","Exts"],ModuleName ["GHC","Float"],ModuleName ["GHC","ForeignPtr"],ModuleName ["GHC","Handle"],ModuleName ["GHC","IO"],ModuleName ["GHC","IOBase"],ModuleName ["GHC","Int"],ModuleName ["GHC","List"],ModuleName ["GHC","Num"],ModuleName ["GHC","PArr"],ModuleName ["GHC","Pack"],ModuleName ["GHC","Ptr"],ModuleName ["GHC","Read"],ModuleName ["GHC","Real"],ModuleName ["GHC","ST"],ModuleName ["GHC","STRef"],ModuleName ["GHC","Show"],ModuleName ["GHC","Stable"],ModuleName ["GHC","Storable"],ModuleName ["GHC","TopHandler"],ModuleName ["GHC","Unicode"],ModuleName ["GHC","Weak"],ModuleName ["GHC","Word"],ModuleName ["System","Timeout"],ModuleName ["Control","Applicative"],ModuleName ["Control","Arrow"],ModuleName ["Control","Category"],ModuleName ["Control","Concurrent"],ModuleName ["Control","Concurrent","Chan"],ModuleName ["Control","Concurrent","MVar"],ModuleName ["Control","Concurrent","QSem"],ModuleName ["Control","Concurrent","QSemN"],ModuleName ["Control","Concurrent","SampleVar"],ModuleName ["Control","Exception"],ModuleName ["Control","Monad"],ModuleName ["Control","Monad","Fix"],ModuleName ["Control","Monad","Instances"],ModuleName ["Control","Monad","ST"],ModuleName ["Control","Monad","ST","Lazy"],ModuleName ["Control","Monad","ST","Strict"],ModuleName ["Data","Bits"],ModuleName ["Data","Bool"],ModuleName ["Data","Char"],ModuleName ["Data","Complex"],ModuleName ["Data","Dynamic"],ModuleName ["Data","Either"],ModuleName ["Data","Eq"],ModuleName ["Data","Fixed"],ModuleName ["Data","Foldable"],ModuleName ["Data","Function"],ModuleName ["Data","HashTable"],ModuleName ["Data","IORef"],ModuleName ["Data","Int"],ModuleName ["Data","Ix"],ModuleName ["Data","List"],ModuleName ["Data","Maybe"],ModuleName ["Data","Monoid"],ModuleName ["Data","Ord"],ModuleName ["Data","Ratio"],ModuleName ["Data","STRef"],ModuleName ["Data","STRef","Lazy"],ModuleName ["Data","STRef","Strict"],ModuleName ["Data","String"],ModuleName ["Data","Traversable"],ModuleName ["Data","Tuple"],ModuleName ["Data","Typeable"],ModuleName ["Data","Unique"],ModuleName ["Data","Version"],ModuleName ["Data","Word"],ModuleName ["Debug","Trace"],ModuleName ["Foreign"],ModuleName ["Foreign","C"],ModuleName ["Foreign","C","Error"],ModuleName ["Foreign","C","String"],ModuleName ["Foreign","C","Types"],ModuleName ["Foreign","ForeignPtr"],ModuleName ["Foreign","Marshal"],ModuleName ["Foreign","Marshal","Alloc"],ModuleName ["Foreign","Marshal","Array"],ModuleName ["Foreign","Marshal","Error"],ModuleName ["Foreign","Marshal","Pool"],ModuleName ["Foreign","Marshal","Utils"],ModuleName ["Foreign","Ptr"],ModuleName ["Foreign","StablePtr"],ModuleName ["Foreign","Storable"],ModuleName ["Numeric"],ModuleName ["Prelude"],ModuleName ["System","Console","GetOpt"],ModuleName ["System","CPUTime"],ModuleName ["System","Environment"],ModuleName ["System","Exit"],ModuleName ["System","IO"],ModuleName ["System","IO","Error"],ModuleName ["System","IO","Unsafe"],ModuleName ["System","Info"],ModuleName ["System","Mem"],ModuleName ["System","Mem","StableName"],ModuleName ["System","Mem","Weak"],ModuleName ["System","Posix","Internals"],ModuleName ["System","Posix","Types"],ModuleName ["Text","ParserCombinators","ReadP"],ModuleName ["Text","ParserCombinators","ReadPrec"],ModuleName ["Text","Printf"],ModuleName ["Text","Read"],ModuleName ["Text","Read","Lex"],ModuleName ["Text","Show"],ModuleName ["Text","Show","Functions"],ModuleName ["Unsafe","Coerce"]], hiddenModules = [], importDirs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/base-3.0.3.1"], libraryDirs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/base-3.0.3.1"], hsLibraries = ["HSbase-3.0.3.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,1,0,0], versionTags = []}},PackageIdentifier {pkgName = PackageName "syb", pkgVersion = Version {versionBranch = [0,1,0,1], versionTags = []}}], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/base.haddock"], haddockHTMLs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base"]},InstalledPackageInfo {package = PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,1,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains the Prelude and its support libraries,\nand a large collection of useful libraries ranging from data\nstructures to parsing combinators and debugging utilities.", category = "", exposed = True, exposedModules = [ModuleName ["Foreign","Concurrent"],ModuleName ["GHC","Arr"],ModuleName ["GHC","Base"],ModuleName ["GHC","Classes"],ModuleName ["GHC","Conc"],ModuleName ["GHC","ConsoleHandler"],ModuleName ["GHC","Desugar"],ModuleName ["GHC","Enum"],ModuleName ["GHC","Environment"],ModuleName ["GHC","Err"],ModuleName ["GHC","Exception"],ModuleName ["GHC","Exts"],ModuleName ["GHC","Float"],ModuleName ["GHC","ForeignPtr"],ModuleName ["GHC","Handle"],ModuleName ["GHC","IO"],ModuleName ["GHC","IOBase"],ModuleName ["GHC","Int"],ModuleName ["GHC","List"],ModuleName ["GHC","Num"],ModuleName ["GHC","PArr"],ModuleName ["GHC","Pack"],ModuleName ["GHC","Ptr"],ModuleName ["GHC","Read"],ModuleName ["GHC","Real"],ModuleName ["GHC","ST"],ModuleName ["GHC","STRef"],ModuleName ["GHC","Show"],ModuleName ["GHC","Stable"],ModuleName ["GHC","Storable"],ModuleName ["GHC","TopHandler"],ModuleName ["GHC","Unicode"],ModuleName ["GHC","Weak"],ModuleName ["GHC","Word"],ModuleName ["System","Timeout"],ModuleName ["Control","Applicative"],ModuleName ["Control","Arrow"],ModuleName ["Control","Category"],ModuleName ["Control","Concurrent"],ModuleName ["Control","Concurrent","Chan"],ModuleName ["Control","Concurrent","MVar"],ModuleName ["Control","Concurrent","QSem"],ModuleName ["Control","Concurrent","QSemN"],ModuleName ["Control","Concurrent","SampleVar"],ModuleName ["Control","Exception"],ModuleName ["Control","Exception","Base"],ModuleName ["Control","OldException"],ModuleName ["Control","Monad"],ModuleName ["Control","Monad","Fix"],ModuleName ["Control","Monad","Instances"],ModuleName ["Control","Monad","ST"],ModuleName ["Control","Monad","ST","Lazy"],ModuleName ["Control","Monad","ST","Strict"],ModuleName ["Data","Bits"],ModuleName ["Data","Bool"],ModuleName ["Data","Char"],ModuleName ["Data","Complex"],ModuleName ["Data","Dynamic"],ModuleName ["Data","Either"],ModuleName ["Data","Eq"],ModuleName ["Data","Data"],ModuleName ["Data","Fixed"],ModuleName ["Data","Foldable"],ModuleName ["Data","Function"],ModuleName ["Data","HashTable"],ModuleName ["Data","IORef"],ModuleName ["Data","Int"],ModuleName ["Data","Ix"],ModuleName ["Data","List"],ModuleName ["Data","Maybe"],ModuleName ["Data","Monoid"],ModuleName ["Data","Ord"],ModuleName ["Data","Ratio"],ModuleName ["Data","STRef"],ModuleName ["Data","STRef","Lazy"],ModuleName ["Data","STRef","Strict"],ModuleName ["Data","String"],ModuleName ["Data","Traversable"],ModuleName ["Data","Tuple"],ModuleName ["Data","Typeable"],ModuleName ["Data","Unique"],ModuleName ["Data","Version"],ModuleName ["Data","Word"],ModuleName ["Debug","Trace"],ModuleName ["Foreign"],ModuleName ["Foreign","C"],ModuleName ["Foreign","C","Error"],ModuleName ["Foreign","C","String"],ModuleName ["Foreign","C","Types"],ModuleName ["Foreign","ForeignPtr"],ModuleName ["Foreign","Marshal"],ModuleName ["Foreign","Marshal","Alloc"],ModuleName ["Foreign","Marshal","Array"],ModuleName ["Foreign","Marshal","Error"],ModuleName ["Foreign","Marshal","Pool"],ModuleName ["Foreign","Marshal","Utils"],ModuleName ["Foreign","Ptr"],ModuleName ["Foreign","StablePtr"],ModuleName ["Foreign","Storable"],ModuleName ["Numeric"],ModuleName ["Prelude"],ModuleName ["System","Console","GetOpt"],ModuleName ["System","CPUTime"],ModuleName ["System","Environment"],ModuleName ["System","Exit"],ModuleName ["System","IO"],ModuleName ["System","IO","Error"],ModuleName ["System","IO","Unsafe"],ModuleName ["System","Info"],ModuleName ["System","Mem"],ModuleName ["System","Mem","StableName"],ModuleName ["System","Mem","Weak"],ModuleName ["System","Posix","Internals"],ModuleName ["System","Posix","Types"],ModuleName ["Text","ParserCombinators","ReadP"],ModuleName ["Text","ParserCombinators","ReadPrec"],ModuleName ["Text","Printf"],ModuleName ["Text","Read"],ModuleName ["Text","Read","Lex"],ModuleName ["Text","Show"],ModuleName ["Text","Show","Functions"],ModuleName ["Unsafe","Coerce"]], hiddenModules = [], importDirs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/base-4.1.0.0"], libraryDirs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/base-4.1.0.0"], hsLibraries = ["HSbase-4.1.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/base-4.1.0.0/include"], includes = ["HsBase.h"], depends = [PackageIdentifier {pkgName = PackageName "ghc-prim", pkgVersion = Version {versionBranch = [0,1,0,0], versionTags = []}},PackageIdentifier {pkgName = PackageName "integer", pkgVersion = Version {versionBranch = [0,1,0,1], versionTags = []}},PackageIdentifier {pkgName = PackageName "rts", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base/base.haddock"], haddockHTMLs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/base"]}]),(PackageName "control-monad-omega",[InstalledPackageInfo {package = PackageIdentifier {pkgName = PackageName "control-monad-omega", pkgVersion = Version {versionBranch = [0,3], versionTags = []}}, license = PublicDomain, copyright = "", maintainer = "lrpalmer@gmail.com", author = "Luke Palmer", stability = "experimental", homepage = "http://github.com/luqui/control-monad-omega", pkgUrl = "", description = "A monad for enumerating sets: like the list\nmonad but breadth-first.", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","Monad","Omega"]], hiddenModules = [], importDirs = ["/Users/pumpkin/.cabal/lib/control-monad-omega-0.3/ghc-6.10.3"], libraryDirs = ["/Users/pumpkin/.cabal/lib/control-monad-omega-0.3/ghc-6.10.3"], hsLibraries = ["HScontrol-monad-omega-0.3"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [3,0,3,1], versionTags = []}}], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Users/pumpkin/.cabal/share/doc/control-monad-omega-0.3/html/control-monad-omega.haddock"], haddockHTMLs = ["/Users/pumpkin/.cabal/share/doc/control-monad-omega-0.3/html"]}]),(PackageName "ghc-prim",[InstalledPackageInfo {package = PackageIdentifier {pkgName = PackageName "ghc-prim", pkgVersion = Version {versionBranch = [0,1,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "GHC primitives.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Prim"],ModuleName ["GHC","Bool"],ModuleName ["GHC","Generics"],ModuleName ["GHC","Ordering"],ModuleName ["GHC","PrimopWrappers"],ModuleName ["GHC","IntWord32"],ModuleName ["GHC","IntWord64"],ModuleName ["GHC","Tuple"],ModuleName ["GHC","Types"],ModuleName ["GHC","Unit"]], hiddenModules = [], importDirs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/ghc-prim-0.1.0.0"], libraryDirs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/ghc-prim-0.1.0.0"], hsLibraries = ["HSghc-prim-0.1.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [PackageIdentifier {pkgName = PackageName "rts", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim/ghc-prim.haddock"], haddockHTMLs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/ghc-prim"]}]),(PackageName "integer",[InstalledPackageInfo {package = PackageIdentifier {pkgName = PackageName "integer", pkgVersion = Version {versionBranch = [0,1,0,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains an Integer library based on GMP.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Integer"],ModuleName ["GHC","Integer","Internals"]], hiddenModules = [], importDirs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/integer-0.1.0.1"], libraryDirs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/integer-0.1.0.1"], hsLibraries = ["HSinteger-0.1.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [PackageIdentifier {pkgName = PackageName "ghc-prim", pkgVersion = Version {versionBranch = [0,1,0,0], versionTags = []}}], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/integer/integer.haddock"], haddockHTMLs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/integer"]}]),(PackageName "rts",[InstalledPackageInfo {package = PackageIdentifier {pkgName = PackageName "rts", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], importDirs = [], libraryDirs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3"], hsLibraries = ["HSrts"], extraLibraries = ["m","ffi","gmp","dl"], extraGHCiLibraries = [], includeDirs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/include","PAPI_INCLUDE_DIR"], includes = ["Stg.h"], depends = [], hugsOptions = [], ccOptions = [], ldOptions = ["-u","_ghczmprim_GHCziTypes_Izh_static_info","-u","_ghczmprim_GHCziTypes_Czh_static_info","-u","_ghczmprim_GHCziTypes_Fzh_static_info","-u","_ghczmprim_GHCziTypes_Dzh_static_info","-u","_base_GHCziPtr_Ptr_static_info","-u","_base_GHCziWord_Wzh_static_info","-u","_base_GHCziInt_I8zh_static_info","-u","_base_GHCziInt_I16zh_static_info","-u","_base_GHCziInt_I32zh_static_info","-u","_base_GHCziInt_I64zh_static_info","-u","_base_GHCziWord_W8zh_static_info","-u","_base_GHCziWord_W16zh_static_info","-u","_base_GHCziWord_W32zh_static_info","-u","_base_GHCziWord_W64zh_static_info","-u","_base_GHCziStable_StablePtr_static_info","-u","_ghczmprim_GHCziTypes_Izh_con_info","-u","_ghczmprim_GHCziTypes_Czh_con_info","-u","_ghczmprim_GHCziTypes_Fzh_con_info","-u","_ghczmprim_GHCziTypes_Dzh_con_info","-u","_base_GHCziPtr_Ptr_con_info","-u","_base_GHCziPtr_FunPtr_con_info","-u","_base_GHCziStable_StablePtr_con_info","-u","_ghczmprim_GHCziBool_False_closure","-u","_ghczmprim_GHCziBool_True_closure","-u","_base_GHCziPack_unpackCString_closure","-u","_base_GHCziIOBase_stackOverflow_closure","-u","_base_GHCziIOBase_heapOverflow_closure","-u","_base_ControlziExceptionziBase_nonTermination_closure","-u","_base_GHCziIOBase_blockedOnDeadMVar_closure","-u","_base_GHCziIOBase_blockedIndefinitely_closure","-u","_base_ControlziExceptionziBase_nestedAtomically_closure","-u","_base_GHCziWeak_runFinalizzerBatch_closure","-u","_base_GHCziTopHandler_runIO_closure","-u","_base_GHCziTopHandler_runNonIO_closure","-u","_base_GHCziConc_runHandlers_closure","-u","_base_GHCziConc_ensureIOManagerIsRunning_closure","-Wl,-search_paths_first","-read_only_relocs","warning"], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}]),(PackageName "syb",[InstalledPackageInfo {package = PackageIdentifier {pkgName = PackageName "syb", pkgVersion = Version {versionBranch = [0,1,0,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains the generics system described in the\n/Scrap Your Boilerplate/ papers (see <http://www.cs.vu.nl/boilerplate/>).\nIt defines the @Data@ class of types permitting folding and unfolding\nof constructor applications, instances of this class for primitive\ntypes, and a variety of traversals.", category = "", exposed = True, exposedModules = [ModuleName ["Data","Generics"],ModuleName ["Data","Generics","Aliases"],ModuleName ["Data","Generics","Basics"],ModuleName ["Data","Generics","Instances"],ModuleName ["Data","Generics","Schemes"],ModuleName ["Data","Generics","Text"],ModuleName ["Data","Generics","Twins"]], hiddenModules = [], importDirs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/syb-0.1.0.1"], libraryDirs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/syb-0.1.0.1"], hsLibraries = ["HSsyb-0.1.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,1,0,0], versionTags = []}}], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/syb/syb.haddock"], haddockHTMLs = ["/Library/Frameworks/GHC.framework/Versions/610/usr/share/doc/ghc/libraries/syb"]}]),(PackageName "tagged",[InstalledPackageInfo {package = PackageIdentifier {pkgName = PackageName "tagged", pkgVersion = Version {versionBranch = [0,0], versionTags = []}}, license = BSD3, copyright = "2009 Edward A. Kmett", maintainer = "Edward A. Kmett <ekmett@gmail.com>", author = "Edward A. Kmett", stability = "experimental", homepage = "", pkgUrl = "", description = "Provides a newtype wrapper for phantom types to avoid passing dummy arguments", category = "Data, Phantom Types", exposed = True, exposedModules = [ModuleName ["Data","Tagged"]], hiddenModules = [], importDirs = ["/Users/pumpkin/.cabal/lib/tagged-0.0/ghc-6.10.3"], libraryDirs = ["/Users/pumpkin/.cabal/lib/tagged-0.0/ghc-6.10.3"], hsLibraries = ["HStagged-0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,1,0,0], versionTags = []}}], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Users/pumpkin/.cabal/share/doc/tagged-0.0/html/tagged.haddock"], haddockHTMLs = ["/Users/pumpkin/.cabal/share/doc/tagged-0.0/html"]}])]), pkgDescrFile = Just "./enumerable.cabal", localPkgDescr = PackageDescription {package = PackageIdentifier {pkgName = PackageName "enumerable", pkgVersion = Version {versionBranch = [0,0,1], versionTags = []}}, license = BSD3, licenseFile = "LICENSE", copyright = "2009 Daniel Peebles", maintainer = "Daniel Peebles <pumpkingod@gmail.com>", author = "Daniel Peebles", stability = "experimental", testedWith = [], homepage = "", pkgUrl = "", bugReports = "", sourceRepos = [], synopsis = "Provides a typeclass for enumerating all values in types", description = "Enumerate anything, including functions of enumerable types!", category = "Data", customFieldsPD = [], buildDepends = [Dependency (PackageName "base") (IntersectVersionRanges (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [4], versionTags = []})) (LaterVersion (Version {versionBranch = [4], versionTags = []}))) (EarlierVersion (Version {versionBranch = [5], versionTags = []}))) (ThisVersion (Version {versionBranch = [4,1,0,0], versionTags = []}))),Dependency (PackageName "control-monad-omega") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [0,3], versionTags = []}))),Dependency (PackageName "tagged") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [0,0], versionTags = []})))], descCabalVersion = UnionVersionRanges (ThisVersion (Version {versionBranch = [1,2], versionTags = []})) (LaterVersion (Version {versionBranch = [1,2], versionTags = []})), buildType = Just Simple, library = Just (Library {exposedModules = [ModuleName ["Data","Enumerable"],ModuleName ["Data","Enumerable","FunctionEquality"],ModuleName ["Data","Enumerable","ControversialFunctionEquality"]], libExposed = True, libBuildInfo = BuildInfo {buildable = True, buildTools = [], cppOptions = [], ccOptions = [], ldOptions = [], pkgconfigDepends = [], frameworks = [], cSources = [], hsSourceDirs = ["."], otherModules = [], extensions = [], extraLibs = [], extraLibDirs = [], includeDirs = [], includes = [], installIncludes = [], options = [(GHC,[])], ghcProfOptions = [], ghcSharedOptions = [], customFieldsBI = []}}), executables = [], dataFiles = [], dataDir = "", extraSrcFiles = [], extraTmpFiles = []}, withPrograms = [("alex",ConfiguredProgram {programId = "alex", programVersion = Just (Version {versionBranch = [2,3,1], versionTags = []}), programArgs = [], programLocation = FoundOnSystem {locationPath = "/Users/pumpkin/.cabal/bin/alex"}}),("ar",ConfiguredProgram {programId = "ar", programVersion = Nothing, programArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ar"}}),("c2hs",ConfiguredProgram {programId = "c2hs", programVersion = Just (Version {versionBranch = [0,16,0], versionTags = []}), programArgs = [], programLocation = FoundOnSystem {locationPath = "/Users/pumpkin/.cabal/bin/c2hs"}}),("cpphs",ConfiguredProgram {programId = "cpphs", programVersion = Just (Version {versionBranch = [1,7], versionTags = []}), programArgs = [], programLocation = FoundOnSystem {locationPath = "/Users/pumpkin/.cabal/bin/cpphs"}}),("gcc",ConfiguredProgram {programId = "gcc", programVersion = Just (Version {versionBranch = [4,0,1], versionTags = []}), programArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/gcc"}}),("ghc",ConfiguredProgram {programId = "ghc", programVersion = Just (Version {versionBranch = [6,10,3], versionTags = []}), programArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ghc"}}),("ghc-pkg",ConfiguredProgram {programId = "ghc-pkg", programVersion = Just (Version {versionBranch = [6,10,3], versionTags = []}), programArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ghc-pkg"}}),("haddock",ConfiguredProgram {programId = "haddock", programVersion = Just (Version {versionBranch = [2,4,2], versionTags = []}), programArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/haddock"}}),("happy",ConfiguredProgram {programId = "happy", programVersion = Just (Version {versionBranch = [1,18,4], versionTags = []}), programArgs = [], programLocation = FoundOnSystem {locationPath = "/Users/pumpkin/.cabal/bin/happy"}}),("hsc2hs",ConfiguredProgram {programId = "hsc2hs", programVersion = Just (Version {versionBranch = [0,67], versionTags = []}), programArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/hsc2hs"}}),("hscolour",ConfiguredProgram {programId = "hscolour", programVersion = Just (Version {versionBranch = [1,13], versionTags = []}), programArgs = [], programLocation = FoundOnSystem {locationPath = "/Users/pumpkin/.cabal/bin/HsColour"}}),("ld",ConfiguredProgram {programId = "ld", programVersion = Nothing, programArgs = ["-x"], programLocation = FoundOnSystem {locationPath = "/usr/bin/ld"}}),("pkg-config",ConfiguredProgram {programId = "pkg-config", programVersion = Just (Version {versionBranch = [0,23], versionTags = []}), programArgs = [], programLocation = FoundOnSystem {locationPath = "/opt/local/bin/pkg-config"}}),("ranlib",ConfiguredProgram {programId = "ranlib", programVersion = Nothing, programArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ranlib"}}),("strip",ConfiguredProgram {programId = "strip", programVersion = Nothing, programArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/strip"}}),("tar",ConfiguredProgram {programId = "tar", programVersion = Nothing, programArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/tar"}})], withPackageDB = UserPackageDB, withVanillaLib = True, withProfLib = True, withSharedLib = False, withProfExe = False, withOptimization = NormalOptimisation, withGHCiLib = True, splitObjs = False, stripExes = True, progPrefix = "", progSuffix = ""}
diff --git a/enumerable.cabal b/enumerable.cabal
new file mode 100644
--- /dev/null
+++ b/enumerable.cabal
@@ -0,0 +1,22 @@
+name:          enumerable
+version:       0.0.1
+license:       BSD3
+license-file:  LICENSE
+author:	       Daniel Peebles
+maintainer:    Daniel Peebles <pumpkingod@gmail.com>
+stability:     experimental
+category:      Data
+synopsis:      Provides a typeclass for enumerating all values in types
+copyright:     2009 Daniel Peebles
+description:   Enumerate any type, including functions of enumerable types!
+build-type:    Simple
+cabal-version: >=1.2
+
+library
+  build-depends: 
+    base >= 4 && < 5, tagged, control-monad-omega
+  exposed-modules:
+    Data.Enumerable
+    Data.Enumerable.FunctionEquality
+    Data.Enumerable.ControversialFunctionEquality
+  ghc-options: 
