-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A typeclass for enumerating all values a type -- -- Fully enumerate any type, including functions of enumerable types! -- Includes a fun controversial function equality instance too :) @package enumerable @version 0.0.3 module Data.Enumerable class Enumerable a enumerate :: Enumerable a => [a] enumerateTotal :: Enumerable a => [a] enumeratePartial :: Enumerable a => [a] isPartial :: Enumerable a => Tagged a Bool data Cardinal Finite :: Integer -> Cardinal Aleph :: Integer -> Cardinal class Enumerable a => FinitelyEnumerable a cardinality :: FinitelyEnumerable a => Tagged a Integer enumerateInterleaved :: (Enum a, Num a) => [a] newtype Partial a Partial :: a -> Partial a instance FinitelyEnumerable a => FinitelyEnumerable (Partial a) instance Enumerable a => Enumerable (Partial a) instance (FinitelyEnumerable a, Integral a) => FinitelyEnumerable (Ratio a) instance (Enumerable a, Integral a) => Enumerable (Ratio a) instance Enumerable Integer instance FinitelyEnumerable Double instance Enumerable Double instance FinitelyEnumerable Float instance Enumerable Float instance FinitelyEnumerable Int64 instance Enumerable Int64 instance FinitelyEnumerable Int32 instance Enumerable Int32 instance FinitelyEnumerable Int16 instance Enumerable Int16 instance FinitelyEnumerable Int8 instance Enumerable Int8 instance FinitelyEnumerable Int instance Enumerable Int instance FinitelyEnumerable Word64 instance Enumerable Word64 instance FinitelyEnumerable Word32 instance Enumerable Word32 instance FinitelyEnumerable Word16 instance Enumerable Word16 instance FinitelyEnumerable Word8 instance Enumerable Word8 instance FinitelyEnumerable Word instance Enumerable Word instance FinitelyEnumerable Char instance Enumerable Char instance FinitelyEnumerable Ordering instance Enumerable Ordering instance FinitelyEnumerable Bool instance Enumerable Bool instance FinitelyEnumerable () instance Enumerable () instance Enumerable a => Enumerable [a] instance (FinitelyEnumerable a, FinitelyEnumerable b) => FinitelyEnumerable (Either a b) instance (Enumerable a, Enumerable b) => Enumerable (Either a b) instance FinitelyEnumerable a => FinitelyEnumerable (Maybe a) instance Enumerable a => Enumerable (Maybe a) instance (FinitelyEnumerable a, FinitelyEnumerable b, FinitelyEnumerable c, FinitelyEnumerable d, FinitelyEnumerable e) => FinitelyEnumerable (a, b, c, d, e) instance (Enumerable a, Enumerable b, Enumerable c, Enumerable d, Enumerable e) => Enumerable (a, b, c, d, e) instance (FinitelyEnumerable a, FinitelyEnumerable b, FinitelyEnumerable c, FinitelyEnumerable d) => FinitelyEnumerable (a, b, c, d) instance (Enumerable a, Enumerable b, Enumerable c, Enumerable d) => Enumerable (a, b, c, d) instance (FinitelyEnumerable a, FinitelyEnumerable b, FinitelyEnumerable c) => FinitelyEnumerable (a, b, c) instance (Enumerable a, Enumerable b, Enumerable c) => Enumerable (a, b, c) instance (FinitelyEnumerable a, FinitelyEnumerable b) => FinitelyEnumerable (a, b) instance (Enumerable a, Enumerable b) => Enumerable (a, b) instance (FinitelyEnumerable a, FinitelyEnumerable b, Eq a) => FinitelyEnumerable (a -> b) instance (FinitelyEnumerable a, FinitelyEnumerable b, Eq a) => Enumerable (a -> b) module Data.Enumerable.FunctionEquality instance (FinitelyEnumerable a, Eq b) => Eq (a -> b) module Data.Enumerable.ControversialFunctionEquality instance (Enumerable a, Eq b) => Eq (a -> b)