diff --git a/raft.cabal b/raft.cabal
--- a/raft.cabal
+++ b/raft.cabal
@@ -1,76 +1,82 @@
-name              : raft
-version           : 0.3.7.0
-synopsis          : Miscellaneous Haskell utilities for data structures and data manipulation.
-description       : This Haskell library contains miscellaneous data structures and data manipulation functions for general uses.
+name               : raft
+version            : 0.3.7.2
+synopsis           : Miscellaneous Haskell utilities for data structures and data manipulation.
+description        : This Haskell library contains miscellaneous data structures and data manipulation functions for general uses.
 
-license           : MIT
-license-file      : LICENSE
-author            : Brian W Bush <consult@brianwbush.info>
-maintainer        : Brian W Bush <consult@brianwbush.info>
-copyright         : (c) 2005-16 Brian W Bush
-category          : Data
-stability         : Experimental
-build-type        : Simple
-cabal-version     : >= 1.10
-homepage          : https://bitbucket.org/functionally/raft
-bug-reports       : https://bwbush.atlassian.net/projects/HRAFT/issues/
-package-url       : https://bitbucket.org/functionally/raft/downloads/raft-0.3.7.0.tar.gz
+license            : MIT
+license-file       : LICENSE
+author             : Brian W Bush <consult@brianwbush.info>
+maintainer         : Brian W Bush <consult@brianwbush.info>
+copyright          : (c) 2005-16 Brian W Bush
+category           : Data
+stability          : Experimental
+build-type         : Simple
+cabal-version      : >= 1.10
+homepage           : https://bitbucket.org/functionally/raft
+bug-reports        : https://bwbush.atlassian.net/projects/HRAFT/issues/
+package-url        : https://bitbucket.org/functionally/raft/downloads/raft-0.3.7.2.tar.gz
 
 source-repository head
-  type            : mercurial
-  location        : https://bitbucket.org/functionally/raft
+  type             : mercurial
+  location         : https://bitbucket.org/functionally/raft
+
+flag minimal
+  description      : Minimize package dependencies by excluding several modules.  This is useful for compatiblity with non-standard compliers such as Haste.
+  default          : False
  
 library
-  exposed-modules : Control.Monad.Except.Util
-                    Data.Aeson.Util
-                    Data.Attoparsec.Util
-                    Data.Color.Util
-                    Data.Default.Util
-                    Data.EdgeTree
-                    Data.Functor.Util
-                    Data.Function.Excel
-                    Data.Function.Finance
-                    Data.Function.MapReduce
-                    Data.Function.MapReduce.Internal
-                    Data.Function.MapReduce.Parallel
-                    Data.Function.Tabulated
-                    Data.Function.Util
-                    Data.List.Util
-                    Data.List.Util.Listable
-                    Data.Maybe.Util
-                    Data.Relational
-                    Data.Relational.Lists
-                    Data.Relational.Value
-                    Data.String.Util
-                    Data.Table
-                    Data.Table.Identifier
-                    Data.Tabular
-                    Data.Time.Util
-                    Data.Tuple.Util
-                    Math.Fractions
-                    Math.GeometricSeries
-                    Math.Monad
-                    Math.Roots
-                    Math.Roots.Bisection
-                    Math.Series
-  hs-source-dirs  : src
-  build-depends   : base         >= 4.8 && < 5
-                  , aeson        >= 0.11.2
-                  , attoparsec   >= 0.13.0
-                  , binary       >= 0.7.5
-                  , bytestring   >= 0.10.6
-                  , containers   >= 0.5.6
-                  , data-default >= 0.7.1
-                  , ghc-prim     >= 0.4.0
-                  , mtl          >= 2.2.1
-                  , parallel     >= 3.2.0
-                  , scientific   >= 0.3.3
-                  , split        >= 0.2.2
-                  , text         >= 1.2.1
-                  , time         >= 1.5.0
-                  , tostring     >= 0.2.1
-                  , zlib         >= 0.5.4
-  exposed         : True
-  buildable       : True
-  ghc-options     : -Wall
-  default-language: Haskell2010
+  exposed-modules  : Control.Monad.Except.Util
+                     Data.Color.Util
+                     Data.Default.Util
+                     Data.EdgeTree
+                     Data.Functor.Util
+                     Data.Function.Excel
+                     Data.Function.Finance
+                     Data.Function.MapReduce
+                     Data.Function.MapReduce.Internal
+                     Data.Function.Util
+                     Data.List.Util
+                     Data.List.Util.Listable
+                     Data.Maybe.Util
+                     Data.String.Util
+                     Data.Time.Util
+                     Data.Tuple.Util
+                     Math.GeometricSeries
+                     Math.Monad
+                     Math.Roots
+                     Math.Roots.Bisection
+                     Math.Series
+  if !flag(minimal)
+    exposed-modules: Data.Aeson.Util
+                     Data.Attoparsec.Util
+                     Data.Function.MapReduce.Parallel
+                     Data.Function.Tabulated
+                     Data.Relational
+                     Data.Relational.Lists
+                     Data.Relational.Value
+                     Data.Table
+                     Data.Table.Identifier
+                     Data.Tabular
+                     Math.Fractions
+  hs-source-dirs   : src
+  build-depends    : base         >= 4.8 && < 5
+                   , binary       >= 0.7.5
+                   , bytestring   >= 0.10.6
+                   , containers   >= 0.5.6
+                   , data-default >= 0.7.1
+                   , ghc-prim     >= 0.4.0
+                   , mtl          >= 2.2.1
+                   , split        >= 0.2.2
+                   , text         >= 1.2.1
+                   , time         >= 1.5.0
+                   , tostring     >= 0.2.1
+  if !flag(minimal)
+    build-depends  : aeson        >= 0.11.2
+                   , attoparsec   >= 0.13.0
+                   , parallel     >= 3.2.0
+                   , scientific   >= 0.3.3
+                   , zlib         >= 0.5.4
+  exposed          : True
+  buildable        : True
+  ghc-options      : -Wall
+  default-language : Haskell2010
diff --git a/src/Data/Default/Util.hs b/src/Data/Default/Util.hs
--- a/src/Data/Default/Util.hs
+++ b/src/Data/Default/Util.hs
@@ -19,6 +19,7 @@
 module Data.Default.Util (
 -- * Classes
   Zero(..)
+, Unknown(..)
 -- * Values
 , nan
 , inf
@@ -45,3 +46,20 @@
 -- | Negative infinity.
 infNegative :: RealFloat a => a
 infNegative = realToFrac (read "-Infinity" :: Double)
+
+
+-- | Unknown value.
+class Unknown a where
+  unknown :: a
+
+instance Unknown Int where
+  unknown = 0
+
+instance Unknown Integer where
+  unknown = 0
+
+instance Unknown Float where
+  unknown = nan
+
+instance Unknown Double where
+  unknown = nan
